blob: e0d33be564bc052e6b40610f34c14add8999ae2c [file] [log] [blame]
// RUN: %target-swift-frontend %s -typecheck
// FIXME: %target-swift-frontend %s -emit-ir -- see https://github.com/apple/swift/pull/7414
protocol P {
associatedtype A
associatedtype B
}
protocol Q : P {
associatedtype M
typealias A = M
}
extension Q {
typealias B = M
}
protocol R {
associatedtype S
init()
}
extension R {
init<V : Q>(_: V) where V.M == Self {
let _ = V.A.self
let _ = V.B.self
let _ = V.M.self
let _ = Self.self
let _: V.M.Type = V.A.self
let _: V.M.Type = V.B.self
let _: V.M.Type = Self.self
let _: V.A.Type = V.M.self
let _: V.A.Type = V.B.self
let _: V.A.Type = Self.self
let _: V.B.Type = V.M.self
let _: V.B.Type = V.A.self
let _: V.B.Type = Self.self
let _: Self.Type = V.A.self
let _: Self.Type = V.B.self
let _: Self.Type = V.M.self
self.init()
}
}