blob: d36496879f23efe9f7f2bf971fb4918fe5cf58ab [file] [log] [blame]
// RUN: %target-swift-frontend %s -typecheck
protocol P0 {}
struct Y : P0 {}
protocol P1 {
associatedtype A: P0 = Y
func f() -> A
}
extension P1 {
func f() -> A {
fatalError()
}
}
protocol P2 : P1 {}
struct Z<T: P1> : P0 {}
extension P2 {
func f() -> Z<Self> {
return Z()
}
}
struct X : P2 {}
let s: P0 = Z<X>()