You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: test/Constraints/diagnostics.swift
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -51,9 +51,9 @@ f0(i, i, // expected-error@:7 {{cannot convert value of type 'Int' to expected a
51
51
52
52
53
53
// Cannot conform to protocols.
54
-
f5(f4) // expected-error {{type '(Int) -> Int' cannot conform to 'P2'; only struct/enum/class types can conform to protocols}}
55
-
f5((1,"hello")) // expected-error {{type '(Int, String)' cannot conform to 'P2'; only struct/enum/class types can conform to protocols}}
56
-
f5(Int.self) // expected-error {{type 'Int.Type' cannot conform to 'P2'; only struct/enum/class types can conform to protocols}}
54
+
f5(f4) // expected-error {{type '(Int) -> Int' cannot conform to 'P2'; only concrete types such as structs, enums and classes can conform to protocols}}
55
+
f5((1,"hello")) // expected-error {{type '(Int, String)' cannot conform to 'P2'; only concrete types such as structs, enums and classes can conform to protocols}}
56
+
f5(Int.self) // expected-error {{type 'Int.Type' cannot conform to 'P2'; only concrete types such as structs, enums and classes can conform to protocols}}
f8(3, f4) // expected-error {{global function 'f8' requires that 'Int' conform to 'P2'}}
105
105
typealiasTup=(Int,Double)
106
106
func f9(_ x:Tup)->Tup{return x }
107
-
f8((1,2.0), f9) // expected-error {{type 'Tup' (aka '(Int, Double)') cannot conform to 'P2'; only struct/enum/class types can conform to protocols}}
107
+
f8((1,2.0), f9) // expected-error {{type 'Tup' (aka '(Int, Double)') cannot conform to 'P2'; only concrete types such as structs, enums and classes can conform to protocols}}
108
108
109
109
// <rdar://problem/19658691> QoI: Incorrect diagnostic for calling nonexistent members on literals
110
110
1.doesntExist(0) // expected-error {{value of type 'Int' has no member 'doesntExist'}}
Copy file name to clipboardExpand all lines: test/Constraints/function_builder_diags.swift
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -179,7 +179,7 @@ struct Label<L> : P where L : P { // expected-note 2 {{'L' declared as parameter
179
179
}
180
180
181
181
func test_51167632()->someP{
182
-
AnyP(G{ // expected-error {{type 'Label<_>.Type' cannot conform to 'P'; only struct/enum/class types can conform to protocols}}
182
+
AnyP(G{ // expected-error {{type 'Label<_>.Type' cannot conform to 'P'; only concrete types such as structs, enums and classes can conform to protocols}}
183
183
Text("hello")
184
184
Label // expected-error {{generic parameter 'L' could not be inferred}}
185
185
// expected-note@-1 {{explicitly specify the generic arguments to fix this issue}} {{10-10=<<#L: P#>>}}
Copy file name to clipboardExpand all lines: test/Constraints/generics.swift
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -188,7 +188,7 @@ func r22459135() {
188
188
189
189
// <rdar://problem/19710848> QoI: Friendlier error message for "[] as Set"
190
190
// <rdar://problem/22326930> QoI: "argument for generic parameter 'Element' could not be inferred" lacks context
191
-
_ =[]asSet // expected-error {{value of protocol type 'Any' cannot conform to 'Hashable'; only struct/enum/class types can conform to protocols}}
191
+
_ =[]asSet // expected-error {{protocol 'Any' as a type cannot conform to 'Hashable'; only concrete types such as structs, enums and classes can conform to protocols}}
192
192
// expected-note@-1 {{required by generic struct 'Set' where 'Element' = 'Any'}}
Copy file name to clipboardExpand all lines: test/Generics/conditional_conformances_literals.swift
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -128,9 +128,9 @@ func combined() {
128
128
129
129
// Needs self conforming protocols:
130
130
let _:Conforms=[[0:[1:[works]]asConforms]]
131
-
// expected-error@-1 {{value of protocol type 'Conforms' cannot conform to 'Conforms'; only struct/enum/class types can conform to protocols}}
131
+
// expected-error@-1 {{protocol 'Conforms' as a type cannot conform to the protocol itself; only concrete types such as structs, enums and classes can conform to protocols}}
132
132
133
133
let _:Conforms=[[0:[1:[fails]]asConforms]]
134
134
// expected-error@-1 {{protocol 'Conforms' requires that 'Fails' conform to 'Conforms'}}
135
-
// expected-error@-2 {{value of protocol type 'Conforms' cannot conform to 'Conforms'; only struct/enum/class types can conform to protocols}}
135
+
// expected-error@-2 {{protocol 'Conforms' as a type cannot conform to the protocol itself; only concrete types such as structs, enums and classes can conform to protocols}}
fP(p) // expected-error{{value of protocol type 'P' cannot conform to 'P'; only struct/enum/class types can conform to protocols}}
26
+
fP(p) // expected-error{{protocol 'P' as a type cannot conform to the protocol itself; only concrete types such as structs, enums and classes can conform to protocols}}
27
27
fAO(p) // expected-error{{global function 'fAO' requires that 'P' be a class type}}
28
28
fAOE(p) // expected-error{{argument type 'P' expected to be an instance of a class or class-constrained type}}
fP(opp) // expected-error{{value of protocol type 'OP & P' cannot conform to 'P'; only struct/enum/class types can conform to protocols}}
41
-
fOP(opp) // expected-error{{value of protocol type 'OP & P' cannot conform to 'OP'; only struct/enum/class types can conform to protocols}}
40
+
fP(opp) // expected-error{{protocol 'OP & P' as a type cannot conform to 'P'; only concrete types such as structs, enums and classes can conform to protocols}}
41
+
fOP(opp) // expected-error{{protocol 'OP & P' as a type cannot conform to 'OP'; only concrete types such as structs, enums and classes can conform to protocols}}
42
42
fAO(opp) // expected-error{{global function 'fAO' requires that 'OP & P' be a class type}}
43
43
fAOE(opp)
44
44
fT(opp)
@@ -64,9 +64,9 @@ class GAO<T : AnyObject> {} // expected-note 2{{requirement specified as 'T' : '
64
64
func blackHole(_ t:Any){}
65
65
66
66
func testBindExistential(){
67
-
blackHole(GP<P>()) // expected-error{{value of protocol type 'P' cannot conform to 'P'; only struct/enum/class types can conform to protocols}}
67
+
blackHole(GP<P>()) // expected-error{{protocol 'P' as a type cannot conform to the protocol itself; only concrete types such as structs, enums and classes can conform to protocols}}
68
68
blackHole(GOP<OP>())
69
-
blackHole(GCP<CP>()) // expected-error{{value of protocol type 'CP' cannot conform to 'CP'; only struct/enum/class types can conform to protocols}}
69
+
blackHole(GCP<CP>()) // expected-error{{protocol 'CP' as a type cannot conform to the protocol itself; only concrete types such as structs, enums and classes can conform to protocols}}
70
70
blackHole(GAO<P>()) // expected-error{{'GAO' requires that 'P' be a class type}}
71
71
blackHole(GAO<OP>())
72
72
blackHole(GAO<CP>()) // expected-error{{'GAO' requires that 'CP' be a class type}}
@@ -92,5 +92,5 @@ func foo() {
92
92
// generic no overloads error path. The error should actually talk
93
93
// about the return type, and this can happen in other contexts as well;
allMine.takeAll() // expected-error{{value of protocol type 'Mine' cannot conform to 'Mine'; only struct/enum/class types can conform to protocols}}
95
+
allMine.takeAll() // expected-error{{protocol 'Mine' as a type cannot conform to the protocol itself; only concrete types such as structs, enums and classes can conform to protocols}}
Copy file name to clipboardExpand all lines: test/Misc/misc_diagnostics.swift
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -143,7 +143,7 @@ func test17875634() {
143
143
func test20770032(){
144
144
if case let1...10=(1,1){ // expected-warning{{'let' pattern has no effect; sub-pattern didn't bind any variables}} {{11-15=}}
145
145
// expected-error@-1 {{expression pattern of type 'ClosedRange<Int>' cannot match values of type '(Int, Int)'}}
146
-
// expected-error@-2 {{'(Int, Int)' cannot conform to 'Equatable'; only struct/enum/class types can conform to protocols}}
146
+
// expected-error@-2 {{type '(Int, Int)' cannot conform to 'Equatable'; only concrete types such as structs, enums and classes can conform to protocols}}
147
147
// expected-note@-3 {{required by operator function '~=' where 'T' = '(Int, Int)'}}
0 commit comments