// RUN: not --crash %target-swift-frontend -typecheck %s // REQUIRES: asserts protocol P1 { associatedtype A2 : P2 where A2.A1 == Self } protocol P2 { associatedtype A1 : P1 where A1.A2 == Self var property: Int { get } } extension P2 { var property: Int { return 0 } } class C1 : P1 { class A2 : P2 { typealias A1 = C1 } }