@@ -10,6 +10,7 @@ extension SomeProtocol where T == Optional<T> { } // expected-error{{same-type c
1010
1111class X < T> where T == X { // expected-error{{same-type constraint 'T' == 'X<T>' is recursive}}
1212// expected-error@-1{{same-type requirement makes generic parameter 'T' non-generic}}
13+ // expected-error@-2 3{{generic class 'X' has self-referential generic requirements}}
1314 var type : T { return Swift . type ( of: self ) } // expected-error{{cannot convert return expression of type 'X<T>.Type' to return type 'T'}}
1415}
1516
@@ -44,7 +45,7 @@ public protocol P {
4445}
4546
4647public struct S < A: P > where A. T == S < A > {
47- // expected-error@-1 {{generic struct 'S' has self-referential generic requirements}}
48+ // expected-error@-1 4 {{generic struct 'S' has self-referential generic requirements}}
4849// expected-note@-2 {{while resolving type 'S<A>'}}
4950 func f( a: A . T ) {
5051 g ( a: id ( t: a) ) // `a` has error type which is diagnosed as circular reference
@@ -70,7 +71,7 @@ protocol PI {
7071}
7172
7273struct SI < A: PI > : I where A : I , A. T == SI < A > {
73- // expected-error@-1 {{generic struct 'SI' has self-referential generic requirements}}
74+ // expected-error@-1 4 {{generic struct 'SI' has self-referential generic requirements}}
7475// expected-note@-2 {{while resolving type 'SI<A>'}}
7576 func ggg< T : I > ( t: T . Type ) -> T {
7677 return T ( )
@@ -98,7 +99,9 @@ struct S5<A: PI> : I where A : I, A.T == S4<A> { }
9899
99100// Used to hit ArchetypeBuilder assertions
100101struct SU < A: P > where A. T == SU {
102+ // expected-error@-1 3{{generic struct 'SU' has self-referential generic requirements}}
101103}
102104
103105struct SIU < A: PI > : I where A : I , A. T == SIU {
106+ // expected-error@-1 3{{generic struct 'SIU' has self-referential generic requirements}}
104107}
0 commit comments