@@ -292,13 +292,16 @@ final class EnumTests: XCTestCase {
292
292
}
293
293
""" ,
294
294
diagnostics: [
295
- // TODO: Old parser expected error on line 2: 'case' label can only appear inside a 'switch' statement
296
295
DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected name in enum case " ) ,
297
296
DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected ':' and type in function parameter " ) ,
298
297
DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected type in function parameter " ) ,
299
298
DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " unexpected code '0' in parameter clause " ) ,
300
299
DiagnosticSpec ( locationMarker: " 4️⃣ " , message: " unexpected code ':' in enum " ) ,
301
- ]
300
+ ] , fixedSource: """
301
+ enum SwitchEnvy {
302
+ case <#identifier#>(_, var x: <#type#>, <#type#>0):
303
+ }
304
+ """
302
305
)
303
306
}
304
307
@@ -330,10 +333,7 @@ final class EnumTests: XCTestCase {
330
333
case Mopsy
331
334
var ivar : Int
332
335
}
333
- """ ,
334
- diagnostics: [
335
- // TODO: Old parser expected error on line 4: enums must not contain stored properties
336
- ]
336
+ """
337
337
)
338
338
}
339
339
@@ -348,7 +348,6 @@ final class EnumTests: XCTestCase {
348
348
}
349
349
""" ,
350
350
diagnostics: [
351
- // TODO: Old parser expected error on line 3: expected identifier after comma in enum 'case' declaration
352
351
DiagnosticSpec ( message: " expected name in enum case " ) ,
353
352
]
354
353
)
@@ -362,8 +361,6 @@ final class EnumTests: XCTestCase {
362
361
}
363
362
""" ,
364
363
diagnostics: [
365
- // TODO: Old parser expected error on line 2: 'case' label can only appear inside a 'switch' statement
366
- // TODO: Old parser expected error on line 2: expected pattern
367
364
DiagnosticSpec ( message: " expected name in enum case " ) ,
368
365
DiagnosticSpec ( message: " unexpected code ':' in enum " ) ,
369
366
]
@@ -378,7 +375,6 @@ final class EnumTests: XCTestCase {
378
375
}
379
376
""" ,
380
377
diagnostics: [
381
- // TODO: Old parser expected error on line 2: 'case' label can only appear inside a 'switch' statement
382
378
DiagnosticSpec ( message: " unexpected code ':' in enum " ) ,
383
379
]
384
380
)
@@ -392,7 +388,6 @@ final class EnumTests: XCTestCase {
392
388
}
393
389
""" ,
394
390
diagnostics: [
395
- // TODO: Old parser expected error on line 2: 'case' label can only appear inside a 'switch' statement
396
391
DiagnosticSpec ( message: " unexpected code ':' in enum " ) ,
397
392
]
398
393
)
@@ -402,16 +397,12 @@ final class EnumTests: XCTestCase {
402
397
AssertParse (
403
398
"""
404
399
enum Recovery4 {
405
- case Self 1️⃣Self
400
+ case 1️⃣Self 2️⃣Self
406
401
}
407
402
""" ,
408
403
diagnostics: [
409
- // TODO: Old parser expected note on line 1: in declaration of 'Recovery4'
410
- // TODO: Old parser expected error on line 2: keyword 'Self' cannot be used as an identifier here
411
- // TODO: Old parser expected note on line 2: if this name is unavoidable, use backticks to escape it, Fix-It replacements: 8 - 12 = '`Self`'
412
- // TODO: Old parser expected error on line 2: consecutive declarations on a line must be separated by ';', Fix-It replacements: 12 - 12 = ';'
413
- // TODO: Old parser expected error on line 2: expected declaration
414
- DiagnosticSpec ( message: " unexpected code 'Self' in enum " ) ,
404
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " keyword 'Self' cannot be used as an identifier here " ) ,
405
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " unexpected code 'Self' in enum " ) ,
415
406
]
416
407
)
417
408
}
@@ -421,17 +412,13 @@ final class EnumTests: XCTestCase {
421
412
"""
422
413
enum Recovery5 {
423
414
case 1️⃣.UE3
424
- case 2️⃣.UE4, .UE5
415
+ case 2️⃣.UE4, 3️⃣ .UE5
425
416
}
426
417
""" ,
427
418
diagnostics: [
428
- // TODO: Old parser expected error on line 2: extraneous code '.' in enum 'case' declaration, Fix-It replacements: 8 - 9 = ''
429
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected name in enum case " ) ,
430
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " unexpected code '.UE3' before enum case " ) ,
431
- // TODO: Old parser expected error on line 3: extraneous code '.' in enum 'case' declaration, Fix-It replacements: 8 - 9 = ''
432
- // TODO: Old parser expected error on line 3: extraneous code '.' in enum 'case' declaration, Fix-It replacements: 14 - 15 = ''
433
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected name in enum case " ) ,
434
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " unexpected code '.UE4, .UE5' in enum " ) ,
419
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " unexpected code '.' in enum case " ) ,
420
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " unexpected code '.' in enum case " ) ,
421
+ DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " unexpected code '.' in enum case " ) ,
435
422
]
436
423
)
437
424
}
@@ -448,7 +435,6 @@ final class EnumTests: XCTestCase {
448
435
diagnostics: [
449
436
DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " '_' cannot be used as an identifier here " ) ,
450
437
DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " '_' cannot be used as an identifier here " ) ,
451
- // TODO: Old parser expected error on line 20: expected identifier after comma in enum 'case' declaration
452
438
DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected name in enum case " ) ,
453
439
]
454
440
)
@@ -478,10 +464,7 @@ final class EnumTests: XCTestCase {
478
464
enum MultiRawType : Int64, Int32 {
479
465
case Couch, Davis
480
466
}
481
- """ ,
482
- diagnostics: [
483
- // TODO: Old parser expected error on line 1: multiple enum raw types 'Int64' and 'Int32'
484
- ]
467
+ """
485
468
)
486
469
}
487
470
@@ -834,10 +817,7 @@ final class EnumTests: XCTestCase {
834
817
enum NonliteralRawValue : Int {
835
818
case Yeon = 100 + 20 + 3
836
819
}
837
- """ ,
838
- diagnostics: [
839
- // TODO: Old parser expected error on line 2: raw value for enum case must be a literal
840
- ]
820
+ """
841
821
)
842
822
}
843
823
@@ -914,10 +894,7 @@ final class EnumTests: XCTestCase {
914
894
case Foo = 1
915
895
case Foo = 1 + 1
916
896
}
917
- """ ,
918
- diagnostics: [
919
- // TODO: Old parser expected error on line 3: raw value for enum case must be a literal
920
- ]
897
+ """
921
898
)
922
899
}
923
900
@@ -1194,10 +1171,7 @@ final class EnumTests: XCTestCase {
1194
1171
self = SE0036.B(SE0036_Auxiliary())
1195
1172
}
1196
1173
}
1197
- """ ,
1198
- diagnostics: [
1199
- // TODO: Old parser expected error on line 25: '_' can only appear in a pattern or on the left side of an assignment
1200
- ]
1174
+ """
1201
1175
)
1202
1176
}
1203
1177
@@ -1218,10 +1192,17 @@ final class EnumTests: XCTestCase {
1218
1192
}
1219
1193
}
1220
1194
}
1221
- """ ,
1222
- diagnostics: [
1223
- // TODO: Old parser expected error on line 5: '_' can only appear in a pattern or on the left side of an assignment
1224
- ]
1195
+ """
1196
+ )
1197
+ }
1198
+
1199
+ func testEnum81b( ) {
1200
+ AssertParse (
1201
+ """
1202
+ switch self {
1203
+ case A(_): break
1204
+ }
1205
+ """
1225
1206
)
1226
1207
}
1227
1208
@@ -1242,12 +1223,7 @@ final class EnumTests: XCTestCase {
1242
1223
enum SE0155 {
1243
1224
case emptyArgs()
1244
1225
}
1245
- """ ,
1246
- diagnostics: [
1247
- // TODO: Old parser expected warning on line 2: enum element with associated values must have at least one associated value
1248
- // TODO: Old parser expected note on line 2: did you mean to remove the empty associated value list?, Fix-It replacements: 17 - 19 = ''
1249
- // TODO: Old parser expected note on line 2: did you mean to explicitly add a 'Void' associated value?, Fix-It replacements: 18 - 18 = 'Void'
1250
- ]
1226
+ """
1251
1227
)
1252
1228
}
1253
1229
@@ -1312,8 +1288,6 @@ final class EnumTests: XCTestCase {
1312
1288
}
1313
1289
""" ,
1314
1290
diagnostics: [
1315
- // TODO: Old parser expected error on line 2: keyword 'func' cannot be used as an identifier here
1316
- // TODO: Old parser expected note on line 2: if this name is unavoidable, use backticks to escape it, Fix-It replacements: 17 - 21 = '`func`'
1317
1291
DiagnosticSpec ( message: " keyword 'func' cannot be used as an identifier here " ) ,
1318
1292
]
1319
1293
)
@@ -1331,8 +1305,6 @@ final class EnumTests: XCTestCase {
1331
1305
""" ,
1332
1306
diagnostics: [
1333
1307
DiagnosticSpec ( message: " expected name in enum case " ) ,
1334
- // TODO: Old parser expected error on line 5: keyword 'case' cannot be used as an identifier here
1335
- // TODO: Old parser expected note on line 5: if this name is unavoidable, use backticks to escape it, Fix-It replacements: 3 - 7 = '`case`'
1336
1308
]
1337
1309
)
1338
1310
}
@@ -1374,9 +1346,7 @@ final class EnumTests: XCTestCase {
1374
1346
}
1375
1347
"""# ,
1376
1348
diagnostics: [
1377
- // TODO: Old parser expected error on line 2: expected identifier after comma in enum 'case' declaration
1378
1349
DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected name in enum case " ) ,
1379
- // TODO: Old parser expected error on line 3: expected identifier after comma in enum 'case' declaration
1380
1350
DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected name in enum case " ) ,
1381
1351
]
1382
1352
)
0 commit comments