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/type/explicit_existential.swift
+33-42Lines changed: 33 additions & 42 deletions
Original file line number
Diff line number
Diff line change
@@ -305,48 +305,48 @@ func testAnyFixIt() {
305
305
306
306
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=any HasAssoc}}
307
307
let _:HasAssoc
308
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-10=any }}
308
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-19=any ~Copyable}}
309
309
let _:~Copyable
310
310
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{11-19=any HasAssoc}}
311
311
let _:(HasAssoc)
312
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-10=any }}
312
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-21=any ~(Copyable)}}
313
313
let _:~(Copyable)
314
314
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{19-27=any HasAssoc}}
315
315
let _:Optional<HasAssoc>
316
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{19-19=any }}
316
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{19-28=any ~Copyable}}
317
317
let _: Optional<~Copyable>
318
318
// FIXME: No fix-it + generic argument not diagnosed.
319
319
// expected-error@+1 {{use of protocol 'HasAssocGeneric<any HasAssoc>' as a type must be written 'any HasAssocGeneric<any HasAssoc>'}}{{none}}
320
320
let _: HasAssocGeneric<HasAssoc>
321
321
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{14-22=any HasAssoc}}
322
322
let _: S.G<HasAssoc>
323
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{26-26=any }}
323
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{26-35=any ~Copyable}}
324
324
let _: S.NonCopyable_G<~Copyable>
325
325
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{12-20=any HasAssoc}}
326
326
let _: G<HasAssoc>.S
327
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{24-24=any }}
327
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{24-33=any ~Copyable}}
328
328
let _:NonCopyable_G<~Copyable>.S
329
329
// expected-error@+2 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{12-20=any HasAssoc}}
330
330
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{24-32=any HasAssoc}}
331
331
let _:G<HasAssoc>.G<HasAssoc>
332
-
// expected-error@+2 {{constraint that suppresses conformance requires 'any'}}{{24-24=any }}
333
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{49-49=any }}
332
+
// expected-error@+2 {{constraint that suppresses conformance requires 'any'}}{{24-33=any ~Copyable}}
333
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{49-58=any ~Copyable}}
334
334
let _: NonCopyable_G<~Copyable>.NonCopyable_G<~Copyable>
335
335
// expected-error@+2 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{12-20=any HasAssoc}}
336
336
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{24-32=any HasAssoc}}
337
337
let _: G<HasAssoc>.G<HasAssoc>.S
338
-
// expected-error@+2 {{constraint that suppresses conformance requires 'any'}}{{24-24=any }}
339
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{49-49=any }}
338
+
// expected-error@+2 {{constraint that suppresses conformance requires 'any'}}{{24-33=any ~Copyable}}
339
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{49-58=any ~Copyable}}
340
340
let _: NonCopyable_G<~Copyable>.NonCopyable_G<~Copyable>.S
341
341
// expected-error@+1 {{use of 'S.HasAssoc_Alias' (aka 'HasAssoc') as a type must be written 'any S.HasAssoc_Alias' (aka 'any HasAssoc')}}{{10-26=any S.HasAssoc_Alias}}
342
342
let _:S.HasAssoc_Alias
343
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-10=any }}
343
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-27=any ~S.Copyable_Alias}}
344
344
let _:~S.Copyable_Alias
345
345
// expected-error@+2 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{12-20=any HasAssoc}}
346
346
// expected-error@+1 {{use of 'S.HasAssoc_Alias' (aka 'HasAssoc') as a type must be written 'any S.HasAssoc_Alias' (aka 'any HasAssoc')}}{{10-36=any G<HasAssoc>.HasAssoc_Alias}}
347
347
let _:G<HasAssoc>.HasAssoc_Alias
348
348
// expected-error@+2 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{13-21=any HasAssoc}}
349
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-10=any }}
349
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-37=any ~G<HasAssoc>.Copyable_Alias}}
350
350
let _:~G<HasAssoc>.Copyable_Alias
351
351
// FIXME: No fix-it + generic argument not diagnosed.
352
352
// expected-error@+1 {{use of 'HasAssocGeneric<any HasAssoc>' as a type must be written 'any HasAssocGeneric<any HasAssoc>}}{{none}}
@@ -356,31 +356,27 @@ func testAnyFixIt() {
356
356
let _:HasAssoc.HasAssoc_Alias.Int_Alias
357
357
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-23=any HasAssoc.Type}}
358
358
let _:HasAssoc.Type
359
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-10=any }}
359
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-24=any ~Copyable.Type}}
360
360
let _:~Copyable.Type
361
361
// expected-error@+1 {{type 'any Copyable.Type' cannot be suppressed}}
362
362
let _:~(Copyable.Type)
363
363
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-25=any (HasAssoc).Type}}
364
364
let _:(HasAssoc).Type
365
-
// FIXME: Fix-it produces singleton, not existential, metatype type?
366
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
365
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-26=any (~Copyable).Type}}
367
366
let _:(~Copyable).Type
368
367
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-27=any ((HasAssoc)).Type}}
369
368
let _:((HasAssoc)).Type
370
-
// FIXME: Fix-it produces singleton, not existential, metatype type?
371
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{12-12=any }}
369
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-28=any ((~Copyable)).Type}}
372
370
let _:((~Copyable)).Type
373
371
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-28=any HasAssoc.Type.Type}}
374
372
let _:HasAssoc.Type.Type
375
373
// expected-error@+1 {{type 'any Copyable.Type.Type' cannot be suppressed}}
376
374
let _:~Copyable.Type.Type
377
-
// FIXME: Fix-it produces singleton, not existential, metatype type?
378
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
375
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-31=any (~Copyable).Type.Type}}
379
376
let _:(~Copyable).Type.Type
380
377
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-30=any (HasAssoc.Type).Type}}
381
378
let _:(HasAssoc.Type).Type
382
-
// FIXME: Fix-it produces singleton, not existential, metatype type?
383
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
379
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-31=any (~Copyable.Type).Type}}
384
380
let _:(~Copyable.Type).Type
385
381
// expected-error@+2 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
386
382
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{30-38=(any HasAssoc)}}
@@ -390,12 +386,12 @@ func testAnyFixIt() {
390
386
let _:(HasAssoc).Protocol =(HasAssoc).self
391
387
// expected-error@+1 {{type '(any Copyable).Type' cannot be suppressed}}
392
388
let _:~Copyable.Protocol
393
-
// expected-error@+2 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
394
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{34-34=any }}
389
+
// expected-error@+2 {{constraint that suppresses conformance requires 'any'}}{{11-20=any ~Copyable}}
390
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{34-43=any ~Copyable}}
395
391
let _:(~Copyable).Protocol =(~Copyable).self
396
392
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
397
393
let _:HasAssoc.Protocol.Type.Type
398
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
394
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-20=any ~Copyable}}
399
395
let _:(~Copyable).Protocol.Type.Type
400
396
do{
401
397
letmeta:S.Type
@@ -409,39 +405,36 @@ func testAnyFixIt() {
409
405
let _:HasAssoc.Type.Protocol
410
406
// expected-error@+1 {{type '(any Copyable.Type).Type' cannot be suppressed}}
411
407
let _:~Copyable.Type.Protocol
412
-
// FIXME: Incorrect fix-it.
413
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
408
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-26=(any (~Copyable).Type)}}
414
409
let _:(~Copyable).Type.Protocol
415
410
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-28=(any HasAssoc.Type.Type)}}
416
411
let _:HasAssoc.Type.Type.Protocol
417
-
// FIXME: Incorrect fix-it.
418
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
412
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-31=(any (~Copyable).Type.Type)}}
419
413
let _:(~Copyable).Type.Type.Protocol
420
414
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
421
415
let _:HasAssoc?
422
416
// expected-error@+1 {{type '(any Copyable)?' cannot be suppressed}}
423
417
let _:~Copyable?
424
418
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{11-19=any HasAssoc}}
425
419
let _:(HasAssoc)?
426
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
420
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-20=any ~Copyable}}
427
421
let _:(~Copyable)?
428
422
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-23=(any HasAssoc.Type)}}
429
423
let _:HasAssoc.Type?
430
-
// FIXME: Fix-it produces singleton, not existential, metatype type?
431
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
424
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{10-26=(any (~Copyable).Type)}}
432
425
let _:(~Copyable).Type?
433
426
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{10-18=(any HasAssoc)}}
434
427
let _:HasAssoc.Protocol?
435
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-11=any }}
428
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{11-20=any ~Copyable}}
436
429
let _:(~Copyable).Protocol?
437
430
// expected-error@+1 {{use of protocol 'HasAssoc' as a type must be written 'any HasAssoc'}}{{21-29=any HasAssoc}}
438
431
let _:(borrowingHasAssoc)->Void
439
-
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{21-21=any }}
432
+
// expected-error@+1 {{constraint that suppresses conformance requires 'any'}}{{21-30=any ~Copyable}}
// expected-error@+1 {{use of protocol 'NonCopyableHasAssoc' as a type must be written 'any NonCopyableHasAssoc'}}{{21-52=any NonCopyableHasAssoc & ~Copyable}}
475
467
let _:(borrowingNonCopyableHasAssoc&~Copyable)->Void
476
-
// FIXME: Incorrect fix-it.
477
-
// expected-error@+3:15 {{constraint that suppresses conformance requires 'any'}}{{15-15=any }}
// expected-error@+2:28 {{use of protocol 'NonCopyableHasAssoc' as a type must be written 'any NonCopyableHasAssoc'}}{{10-88=(any (((((~Copyable) & NonCopyableHasAssoc) & NonCopyableHasAssoc).Type.Type)).Type)}}
479
470
// expected-error@+1:51 {{use of protocol 'NonCopyableHasAssoc' as a type must be written 'any NonCopyableHasAssoc'}}{{10-88=(any (((((~Copyable) & NonCopyableHasAssoc) & NonCopyableHasAssoc).Type.Type)).Type)}}
480
471
let _:(((((~Copyable)&NonCopyableHasAssoc)&NonCopyableHasAssoc).Type.Type)).Type?
0 commit comments