blob: 549601736a82e93364b27ee1f2f33868d78956b8 [file] [log] [blame]
// RUN: %target-swift-frontend %s -emit-silgen
protocol FooProtocol {
associatedtype Element
}
protocol Bar {
associatedtype Foo : FooProtocol
typealias Element = Foo.Element
mutating func extend<
C : FooProtocol
>(elements: C)
where
C.Element == Element
}
struct FooImpl<T> : FooProtocol {
typealias Element = T
}
struct BarImpl<T> : Bar {
typealias Foo = FooImpl<T>
// Uncomment this line to make it compile:
// typealias Element = T
mutating func extend<
C : FooProtocol
>(elements: C)
where
C.Element == T {}
}