// RUN: %target-swift-frontend %s -typecheck // RUN: %target-swift-frontend %s -emit-ir -o /dev/null 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) 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() } }