@@ -39,7 +39,7 @@ func takes_P5<X: P5>(_: X) {}
39
39
struct Free < T> { }
40
40
// CHECK-LABEL: ExtensionDecl line={{.*}} base=Free<T>
41
41
// CHECK-NEXT: (normal_conformance type=Free<T> protocol=P2
42
- // CHECK-NEXT: conforms_to: τ_0_0 P1)
42
+ // CHECK-NEXT: conforms_to: T P1)
43
43
extension Free : P2 where T: P1 { }
44
44
func free_good< U: P1 > ( _: U ) {
45
45
takes_P2 ( Free < U > ( ) )
@@ -54,7 +54,7 @@ func free_bad<U>(_: U) {
54
54
struct Constrained < T: P1 > { }
55
55
// CHECK-LABEL: ExtensionDecl line={{.*}} base=Constrained<T>
56
56
// CHECK-NEXT: (normal_conformance type=Constrained<T> protocol=P2
57
- // CHECK-NEXT: conforms_to: τ_0_0 P3)
57
+ // CHECK-NEXT: conforms_to: T P3)
58
58
extension Constrained : P2 where T: P3 { }
59
59
func constrained_good< U: P1 & P3 > ( _: U ) {
60
60
takes_P2 ( Constrained < U > ( ) )
@@ -79,7 +79,7 @@ extension RedundantSuper: P2 where T: P1 {}
79
79
struct OverlappingSub < T: P1 > { }
80
80
// CHECK-LABEL: ExtensionDecl line={{.*}} base=OverlappingSub<T>
81
81
// CHECK-NEXT: (normal_conformance type=OverlappingSub<T> protocol=P2
82
- // CHECK-NEXT: conforms_to: τ_0_0 P4)
82
+ // CHECK-NEXT: conforms_to: T P4)
83
83
extension OverlappingSub : P2 where T: P4 { }
84
84
func overlapping_sub_good< U: P4 > ( _: U ) {
85
85
takes_P2 ( OverlappingSub < U > ( ) )
@@ -95,7 +95,7 @@ func overlapping_sub_bad<U: P1>(_: U) {
95
95
struct SameType < T> { }
96
96
// CHECK-LABEL: ExtensionDecl line={{.*}} base=SameType<Int>
97
97
// CHECK-NEXT: (normal_conformance type=SameType<T> protocol=P2
98
- // CHECK-NEXT: same_type: τ_0_0 Int)
98
+ // CHECK-NEXT: same_type: T Int)
99
99
extension SameType : P2 where T == Int { }
100
100
func same_type_good( ) {
101
101
takes_P2 ( SameType < Int > ( ) )
@@ -109,7 +109,7 @@ func same_type_bad<U>(_: U) {
109
109
struct SameTypeGeneric < T, U> { }
110
110
// CHECK-LABEL: ExtensionDecl line={{.*}} base=SameTypeGeneric<T, T>
111
111
// CHECK-NEXT: (normal_conformance type=SameTypeGeneric<T, U> protocol=P2
112
- // CHECK-NEXT: same_type: τ_0_0 τ_0_1 )
112
+ // CHECK-NEXT: same_type: T U )
113
113
extension SameTypeGeneric : P2 where T == U { }
114
114
func same_type_generic_good< U, V> ( _: U , _: V )
115
115
where U: Assoc , V: Assoc , U. AT == V . AT
@@ -131,8 +131,8 @@ func same_type_bad<U, V>(_: U, _: V) {
131
131
struct Infer < T, U> { }
132
132
// CHECK-LABEL: ExtensionDecl line={{.*}} base=Infer<Constrained<U>, U>
133
133
// CHECK-NEXT: (normal_conformance type=Infer<T, U> protocol=P2
134
- // CHECK-NEXT: same_type: τ_0_0 Constrained<τ_0_1 >
135
- // CHECK-NEXT: conforms_to: τ_0_1 P1)
134
+ // CHECK-NEXT: same_type: T Constrained<U >
135
+ // CHECK-NEXT: conforms_to: U P1)
136
136
extension Infer : P2 where T == Constrained < U > { }
137
137
func infer_good< U: P1 > ( _: U ) {
138
138
takes_P2 ( Infer < Constrained < U > , U > ( ) )
@@ -147,7 +147,7 @@ func infer_bad<U: P1, V>(_: U, _: V) {
147
147
struct InferRedundant < T, U: P1 > { }
148
148
// CHECK-LABEL: ExtensionDecl line={{.*}} base=InferRedundant<Constrained<U>, U>
149
149
// CHECK-NEXT: (normal_conformance type=InferRedundant<T, U> protocol=P2
150
- // CHECK-NEXT: same_type: τ_0_0 Constrained<τ_0_1 >)
150
+ // CHECK-NEXT: same_type: T Constrained<U >)
151
151
extension InferRedundant : P2 where T == Constrained < U > { }
152
152
func infer_redundant_good< U: P1 > ( _: U ) {
153
153
takes_P2 ( InferRedundant < Constrained < U > , U > ( ) )
@@ -167,7 +167,7 @@ class C3: C2 {}
167
167
struct ClassFree < T> { }
168
168
// CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassFree<T>
169
169
// CHECK-NEXT: (normal_conformance type=ClassFree<T> protocol=P2
170
- // CHECK-NEXT: superclass: τ_0_0 C1)
170
+ // CHECK-NEXT: superclass: T C1)
171
171
extension ClassFree : P2 where T: C1 { }
172
172
func class_free_good< U: C1 > ( _: U ) {
173
173
takes_P2 ( ClassFree < U > ( ) )
@@ -180,7 +180,7 @@ func class_free_bad<U>(_: U) {
180
180
struct ClassMoreSpecific < T: C1 > { }
181
181
// CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassMoreSpecific<T>
182
182
// CHECK-NEXT: (normal_conformance type=ClassMoreSpecific<T> protocol=P2
183
- // CHECK-NEXT: superclass: τ_0_0 C3)
183
+ // CHECK-NEXT: superclass: T C3)
184
184
extension ClassMoreSpecific : P2 where T: C3 { }
185
185
func class_more_specific_good< U: C3 > ( _: U ) {
186
186
takes_P2 ( ClassMoreSpecific < U > ( ) )
@@ -216,11 +216,11 @@ func subclass_bad() {
216
216
struct InheritEqual < T> { }
217
217
// CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritEqual<T>
218
218
// CHECK-NEXT: (normal_conformance type=InheritEqual<T> protocol=P2
219
- // CHECK-NEXT: conforms_to: τ_0_0 P1)
219
+ // CHECK-NEXT: conforms_to: T P1)
220
220
extension InheritEqual : P2 where T: P1 { }
221
221
// CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritEqual<T>
222
222
// CHECK-NEXT: (normal_conformance type=InheritEqual<T> protocol=P5
223
- // CHECK-NEXT: conforms_to: τ_0_0 P1)
223
+ // CHECK-NEXT: conforms_to: T P1)
224
224
extension InheritEqual : P5 where T: P1 { }
225
225
func inheritequal_good< U: P1 > ( _: U ) {
226
226
takes_P2 ( InheritEqual < U > ( ) )
@@ -248,11 +248,11 @@ extension InheritLess: P5 {} // expected-error{{type 'T' does not conform to pro
248
248
struct InheritMore < T> { }
249
249
// CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritMore<T>
250
250
// CHECK-NEXT: (normal_conformance type=InheritMore<T> protocol=P2
251
- // CHECK-NEXT: conforms_to: τ_0_0 P1)
251
+ // CHECK-NEXT: conforms_to: T P1)
252
252
extension InheritMore : P2 where T: P1 { }
253
253
// CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritMore<T>
254
254
// CHECK-NEXT: (normal_conformance type=InheritMore<T> protocol=P5
255
- // CHECK-NEXT: conforms_to: τ_0_0 P4)
255
+ // CHECK-NEXT: conforms_to: T P4)
256
256
extension InheritMore : P5 where T: P4 { }
257
257
func inheritequal_good_good< U: P4 > ( _: U ) {
258
258
takes_P2 ( InheritMore < U > ( ) )
@@ -315,13 +315,13 @@ extension TwoDisjointConformances: P2 where T == String {}
315
315
struct RedundancyOrderDependenceGood < T: P1 , U> { }
316
316
// CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundancyOrderDependenceGood<T, T>
317
317
// CHECK-NEXT: (normal_conformance type=RedundancyOrderDependenceGood<T, U> protocol=P2
318
- // CHECK-NEXT: same_type: τ_0_0 τ_0_1 )
318
+ // CHECK-NEXT: same_type: T U )
319
319
extension RedundancyOrderDependenceGood : P2 where U: P1 , T == U { }
320
320
struct RedundancyOrderDependenceBad < T, U: P1 > { }
321
321
// CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundancyOrderDependenceBad<T, T>
322
322
// CHECK-NEXT: (normal_conformance type=RedundancyOrderDependenceBad<T, U> protocol=P2
323
- // CHECK-NEXT: conforms_to: τ_0_0 P1
324
- // CHECK-NEXT: same_type: τ_0_0 τ_0_1 )
323
+ // CHECK-NEXT: conforms_to: T P1
324
+ // CHECK-NEXT: same_type: T U )
325
325
extension RedundancyOrderDependenceBad : P2 where T: P1 , T == U { }
326
326
327
327
// Checking of conditional requirements for existential conversions.
0 commit comments