@@ -21,7 +21,7 @@ func takes_P2<X: P2>(_: X) {}
21
21
func takes_P5< X: P5 > ( _: X ) { }
22
22
23
23
struct Free < T> { }
24
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=Free<T>
24
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=Free
25
25
// CHECK-NEXT: (normal_conformance type=Free<T> protocol=P2
26
26
// CHECK-NEXT: conforms_to: T P1)
27
27
extension Free : P2 where T: P1 { } // expected-note {{requirement from conditional conformance of 'Free<U>' to 'P2'}}
@@ -33,7 +33,7 @@ func free_bad<U>(_: U) {
33
33
}
34
34
35
35
struct Constrained < T: P1 > { }
36
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=Constrained<T>
36
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=Constrained
37
37
// CHECK-NEXT: (normal_conformance type=Constrained<T> protocol=P2
38
38
// CHECK-NEXT: conforms_to: T P3)
39
39
extension Constrained : P2 where T: P3 { } // expected-note {{requirement from conditional conformance of 'Constrained<U>' to 'P2'}}
@@ -45,17 +45,17 @@ func constrained_bad<U: P1>(_: U) {
45
45
}
46
46
47
47
struct RedundantSame < T: P1 > { }
48
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundantSame<T>
48
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundantSame
49
49
// CHECK-NEXT: (normal_conformance type=RedundantSame<T> protocol=P2)
50
50
extension RedundantSame : P2 where T: P1 { }
51
51
52
52
struct RedundantSuper < T: P4 > { }
53
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundantSuper<T>
53
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundantSuper
54
54
// CHECK-NEXT: (normal_conformance type=RedundantSuper<T> protocol=P2)
55
55
extension RedundantSuper : P2 where T: P1 { }
56
56
57
57
struct OverlappingSub < T: P1 > { }
58
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=OverlappingSub<T>
58
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=OverlappingSub
59
59
// CHECK-NEXT: (normal_conformance type=OverlappingSub<T> protocol=P2
60
60
// CHECK-NEXT: conforms_to: T P4)
61
61
extension OverlappingSub : P2 where T: P4 { } // expected-note {{requirement from conditional conformance of 'OverlappingSub<U>' to 'P2'}}
@@ -68,7 +68,7 @@ func overlapping_sub_bad<U: P1>(_: U) {
68
68
69
69
70
70
struct SameType < T> { }
71
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=SameType<T>
71
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=SameType
72
72
// CHECK-NEXT: (normal_conformance type=SameType<T> protocol=P2
73
73
// CHECK-NEXT: same_type: T Int)
74
74
extension SameType : P2 where T == Int { }
@@ -84,7 +84,7 @@ func same_type_bad<U>(_: U) {
84
84
85
85
86
86
struct SameTypeGeneric < T, U> { }
87
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=SameTypeGeneric<T, U>
87
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=SameTypeGeneric
88
88
// CHECK-NEXT: (normal_conformance type=SameTypeGeneric<T, U> protocol=P2
89
89
// CHECK-NEXT: same_type: T U)
90
90
extension SameTypeGeneric : P2 where T == U { }
@@ -108,7 +108,7 @@ func same_type_bad<U, V>(_: U, _: V) {
108
108
109
109
110
110
struct Infer < T, U> { }
111
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=Infer<T, U>
111
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=Infer
112
112
// CHECK-NEXT: (normal_conformance type=Infer<T, U> protocol=P2
113
113
// CHECK-NEXT: same_type: T Constrained<U>
114
114
// CHECK-NEXT: conforms_to: U P1)
@@ -126,7 +126,7 @@ func infer_bad<U: P1, V>(_: U, _: V) {
126
126
}
127
127
128
128
struct InferRedundant < T, U: P1 > { }
129
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=InferRedundant<T, U>
129
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=InferRedundant
130
130
// CHECK-NEXT: (normal_conformance type=InferRedundant<T, U> protocol=P2
131
131
// CHECK-NEXT: same_type: T Constrained<U>)
132
132
extension InferRedundant : P2 where T == Constrained < U > { }
@@ -146,7 +146,7 @@ class C2: C1 {}
146
146
class C3 : C2 { }
147
147
148
148
struct ClassFree < T> { }
149
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassFree<T>
149
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassFree
150
150
// CHECK-NEXT: (normal_conformance type=ClassFree<T> protocol=P2
151
151
// CHECK-NEXT: superclass: T C1)
152
152
extension ClassFree : P2 where T: C1 { }
@@ -159,7 +159,7 @@ func class_free_bad<U>(_: U) {
159
159
}
160
160
161
161
struct ClassMoreSpecific < T: C1 > { }
162
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassMoreSpecific<T>
162
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassMoreSpecific
163
163
// CHECK-NEXT: (normal_conformance type=ClassMoreSpecific<T> protocol=P2
164
164
// CHECK-NEXT: superclass: T C3)
165
165
extension ClassMoreSpecific : P2 where T: C3 { } // expected-note {{requirement from conditional conformance of 'ClassMoreSpecific<U>' to 'P2'}}
@@ -173,7 +173,7 @@ func class_more_specific_bad<U: C1>(_: U) {
173
173
174
174
175
175
struct ClassLessSpecific < T: C3 > { }
176
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassLessSpecific<T>
176
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=ClassLessSpecific
177
177
// CHECK-NEXT: (normal_conformance type=ClassLessSpecific<T> protocol=P2)
178
178
extension ClassLessSpecific : P2 where T: C1 { }
179
179
@@ -195,11 +195,11 @@ func subclass_bad() {
195
195
// Inheriting conformances:
196
196
197
197
struct InheritEqual < T> { }
198
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritEqual<T>
198
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritEqual
199
199
// CHECK-NEXT: (normal_conformance type=InheritEqual<T> protocol=P2
200
200
// CHECK-NEXT: conforms_to: T P1)
201
201
extension InheritEqual : P2 where T: P1 { } // expected-note {{requirement from conditional conformance of 'InheritEqual<U>' to 'P2'}}
202
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritEqual<T>
202
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritEqual
203
203
// CHECK-NEXT: (normal_conformance type=InheritEqual<T> protocol=P5
204
204
// CHECK-NEXT: (normal_conformance type=InheritEqual<T> protocol=P2
205
205
// CHECK-NEXT: conforms_to: T P1)
@@ -223,11 +223,11 @@ extension InheritLess: P5 {} // expected-error{{type 'T' does not conform to pro
223
223
224
224
225
225
struct InheritMore < T> { }
226
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritMore<T>
226
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritMore
227
227
// CHECK-NEXT: (normal_conformance type=InheritMore<T> protocol=P2
228
228
// CHECK-NEXT: conforms_to: T P1)
229
229
extension InheritMore : P2 where T: P1 { } // expected-note {{requirement from conditional conformance of 'InheritMore<U>' to 'P2'}}
230
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritMore<T>
230
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=InheritMore
231
231
// CHECK-NEXT: (normal_conformance type=InheritMore<T> protocol=P5
232
232
// CHECK-NEXT: (normal_conformance type=InheritMore<T> protocol=P2
233
233
// CHECK-NEXT: conforms_to: T P1)
@@ -310,12 +310,12 @@ extension TwoDisjointConformances: P2 where T == String {}
310
310
// signature, meaning the stored conditional requirement is T: P1, which isn't
311
311
// true in the original type's generic signature.
312
312
struct RedundancyOrderDependenceGood < T: P1 , U> { }
313
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundancyOrderDependenceGood<T, U>
313
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundancyOrderDependenceGood
314
314
// CHECK-NEXT: (normal_conformance type=RedundancyOrderDependenceGood<T, U> protocol=P2
315
315
// CHECK-NEXT: same_type: T U)
316
316
extension RedundancyOrderDependenceGood : P2 where U: P1 , T == U { }
317
317
struct RedundancyOrderDependenceBad < T, U: P1 > { }
318
- // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundancyOrderDependenceBad<T, U>
318
+ // CHECK-LABEL: ExtensionDecl line={{.*}} base=RedundancyOrderDependenceBad
319
319
// CHECK-NEXT: (normal_conformance type=RedundancyOrderDependenceBad<T, U> protocol=P2
320
320
// CHECK-NEXT: conforms_to: T P1
321
321
// CHECK-NEXT: same_type: T U)
0 commit comments