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
@@ -281,6 +273,12 @@ enum EE : Equatable, any Empty { // expected-error {{raw type 'any Empty' is not
281
273
case hack
282
274
}
283
275
276
+
// Protocols from a serialized module (the standard library).
277
+
do{
278
+
let _:Decodable
279
+
let _:Codable
280
+
}
281
+
284
282
func testAnyFixIt(){
285
283
structConformingType:HasAssoc{
286
284
typealiasAssoc=Int
@@ -302,6 +300,19 @@ func testAnyFixIt() {
302
300
// expected-error@+2 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
303
301
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{30-38=(any HasAssoc)}}
304
302
let _:HasAssoc.Protocol=HasAssoc.self
303
+
do{
304
+
structWrapper{
305
+
typealiasHasAssocAlias=HasAssoc
306
+
}
307
+
letwrapperMeta:Wrapper.Type
308
+
// FIXME: Both of these fix-its are wrong.
309
+
// 1. 'any' is attached to 'HasAssocAlias' instead of 'Wrapper.HasAssocAlias'
310
+
// 2. What is the correct fix-it for the initializer?
311
+
//
312
+
// expected-error@+2:20 {{use of 'Wrapper.HasAssocAlias' (aka 'HasAssoc') as a type must be written 'any Wrapper.HasAssocAlias' (aka 'any HasAssoc')}}{{20-33=(any HasAssocAlias)}}
313
+
// expected-error@+1:57 {{use of 'Wrapper.HasAssocAlias' (aka 'HasAssoc') as a type must be written 'any Wrapper.HasAssocAlias' (aka 'any HasAssoc')}}{{57-70=(any HasAssocAlias)}}
314
+
let _:Wrapper.HasAssocAlias.Protocol= wrapperMeta.HasAssocAlias.self
315
+
}
305
316
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{11-19=any HasAssoc}}
306
317
let _:(HasAssoc).Protocol =(anyHasAssoc).self
307
318
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
@@ -311,6 +303,13 @@ enum EE : Equatable, any Empty { // expected-error {{raw type 'any Empty' is not
311
303
case hack
312
304
}
313
305
306
+
// Protocols from a serialized module (the standard library).
307
+
do{
308
+
// expected-error@+1 {{use of protocol 'Decodable' as a type must be written 'any Decodable'}}
309
+
let _:Decodable
310
+
// expected-error@+1 2 {{use of 'Codable' (aka 'Decodable & Encodable') as a type must be written 'any Codable' (aka 'any Decodable & Encodable')}}
311
+
let _:Codable
312
+
}
314
313
315
314
func testAnyFixIt(){
316
315
structConformingType:HasAssoc{
@@ -333,6 +332,19 @@ func testAnyFixIt() {
333
332
// expected-error@+2 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
334
333
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{30-38=(any HasAssoc)}}
335
334
let _:HasAssoc.Protocol=HasAssoc.self
335
+
do{
336
+
structWrapper{
337
+
typealiasHasAssocAlias=HasAssoc
338
+
}
339
+
letwrapperMeta:Wrapper.Type
340
+
// FIXME: Both of these fix-its are wrong.
341
+
// 1. 'any' is attached to 'HasAssocAlias' instead of 'Wrapper.HasAssocAlias'
342
+
// 2. What is the correct fix-it for the initializer?
343
+
//
344
+
// expected-error@+2:20 {{use of 'Wrapper.HasAssocAlias' (aka 'HasAssoc') as a type must be written 'any Wrapper.HasAssocAlias' (aka 'any HasAssoc')}}{{20-33=(any HasAssocAlias)}}
345
+
// expected-error@+1:57 {{use of 'Wrapper.HasAssocAlias' (aka 'HasAssoc') as a type must be written 'any Wrapper.HasAssocAlias' (aka 'any HasAssoc')}}{{57-70=(any HasAssocAlias)}}
346
+
let _:Wrapper.HasAssocAlias.Protocol= wrapperMeta.HasAssocAlias.self
347
+
}
336
348
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{11-19=any HasAssoc}}
337
349
let _:(HasAssoc).Protocol =(anyHasAssoc).self
338
350
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
0 commit comments