blob: 59905ed3e4aa2dbd67d32f2f6be1afe3a0198951 [file] [log] [blame]
// RUN: %target-typecheck-verify-swift
struct X {
typealias MyInt = Int
func getInt() -> MyInt { return 7 }
}
extension X {
typealias MyReal = Double
func getFloat() -> MyReal { return 3.14 }
}
protocol MyIteratorProtocol {}
protocol MySequence {
associatedtype Iterator : MyIteratorProtocol
func makeIterator() -> Iterator
}
struct IteratorWrapper<I : MyIteratorProtocol> {
var index: Int
var elements: I
}
struct SequenceWrapper<T : MySequence> {
var input : T
typealias Iterator = IteratorWrapper<T.Iterator>
func makeIterator() -> Iterator {
return Iterator(index: 0, elements: input.makeIterator())
}
}