// RUN: not --crash %target-swift-frontend -typecheck %s

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
  }
}

Add failing test case for GSB bug
Add failing test case for GSB bug
