| // RUN: %target-swift-frontend -verify -emit-ir %s |
| |
| // Ideally this would type check successfully; we should be able to |
| // infer that X == Int using the same-type constraint 'A.X == X'. |
| |
| protocol P1 { |
| associatedtype X |
| // expected-note@-1 {{protocol requires nested type 'X'; do you want to add it?}} |
| associatedtype A: P2 where A.X == X |
| } |
| |
| protocol P2 { |
| associatedtype X |
| } |
| |
| struct S {} |
| |
| extension S { |
| struct A: P2 { |
| typealias X = Int |
| } |
| } |
| |
| |
| extension S: P1 {} |
| // expected-error@-1 {{type 'S' does not conform to protocol 'P1'}} |
| |
| print(S.X.self) |