Files
swift-mirror/validation-test/compiler_crashers_2_fixed/0014-rdar20508671.swift
David Farler b7d17b25ba Rename -parse flag to -typecheck
A parse-only option is needed for parse performance tracking and the
current option also includes semantic analysis.
2016-11-28 10:50:55 -08:00

36 lines
773 B
Swift

// RUN: not %target-swift-frontend %s -typecheck
protocol MyIteratorProtocol {
typealias Element
mutating func next() -> Element?
}
protocol MySequence {
typealias Iterator : MyIteratorProtocol
func makeIterator() -> Iterator
}
protocol MyCollectionDefaults : MySequence {}
extension MyCollectionDefaults {
final func makeIterator() -> DefaultIterator<Self> {
return DefaultIterator()
}
}
protocol MyCollection
: MySequence, MyCollectionDefaults {}
struct DefaultIterator<C : MyCollectionDefaults> : MyIteratorProtocol {
mutating func next() -> C.Iterator.Element {
fatalError("")
}
}
struct FooIteratorWrapper<Base : MyIteratorProtocol> {
init(_ base: Base) {}
}
func f<C : MyCollection>(c: C) {
FooIteratorWrapper(c.makeIterator())
}