// RUN: %target-typecheck-verify-swift
// https://github.com/apple/swift/issues/49119
protocol P {
associatedtype A: P // expected-note {{protocol requires nested type 'A'}}
}
struct Type {}
extension Type: P where Param: P, Param.A == Type {
// expected-error@-1 {{extension of generic struct 'Type' has self-referential generic requirements}}
// expected-note@-2 {{through reference here}}
// expected-error@-3 {{type 'Type' does not conform to protocol 'P'}}
// expected-note@-4 {{add stubs for conformance}}
typealias A = Param
// expected-note@-1 3{{through reference here}}
// expected-note@-2 {{possibly intended match 'Type.A' (aka 'Param') does not conform to 'P'}}
}