// RUN: %target-swift-frontend %s -emit-ir
struct MySlice : MyCollectionType {}
struct MyMutableSlice : MyMutableCollectionType {}
protocol MySequenceType {}
protocol MyIndexableType {}
protocol MyCollectionType : MySequenceType, MyIndexableType {
typealias SubSequence = MySlice
func makeSubSequence() -> SubSequence
}
extension MyCollectionType {
func makeSubSequence() -> MySlice {
typealias S = Self
return MySlice()
}
}
protocol MyMutableCollectionType : MyCollectionType {
typealias SubSequence = MyMutableSlice
}
extension MyMutableCollectionType {
func makeSubSequence() -> MyMutableSlice {
typealias S = Self
return MyMutableSlice()
}
}