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/patterns.swift
+41
Original file line number
Diff line number
Diff line change
@@ -412,13 +412,34 @@ do {
412
412
enumE{
413
413
case baz
414
414
case bar
415
+
416
+
staticvarmember:Self{
417
+
.baz
418
+
}
419
+
420
+
staticfunc method()->Self{
421
+
.bar
422
+
}
423
+
424
+
staticfunc methodArg(_:Void)->Self{
425
+
.baz
426
+
}
427
+
428
+
staticvarnone:Self{
429
+
.baz
430
+
}
415
431
}
416
432
417
433
letoe:E?=.bar
418
434
419
435
switch oe {
420
436
case.bar?:break // Ok
421
437
case.baz:break // Ok
438
+
case.member:break // Ok
439
+
case.missingMember:break // expected-error {{type 'E?' has no member 'missingMember'}}
440
+
case.method():break // Ok
441
+
case.methodArg(()):break // Ok
442
+
case.none:break // expected-warning {{assuming you mean 'Optional<E>.none'; did you mean 'E.none' instead?}} expected-note {{use 'nil' to silence this warning}} expected-note {{use 'none?' instead}}
422
443
default:break
423
444
}
424
445
@@ -427,11 +448,31 @@ do {
427
448
switch ooe {
428
449
case.bar?:break // Ok
429
450
case.baz:break // Ok
451
+
case.member:break // Ok
452
+
case.missingMember:break // expected-error {{type 'E??' has no member 'missingMember'}}
453
+
case.method():break // Ok
454
+
case.methodArg(()):break // Ok
430
455
default:break
431
456
}
432
457
433
458
if case .baz = ooe {} // Ok
434
459
if case .bar?= ooe {} // Ok
460
+
if case .member = ooe {} // Ok
461
+
if case .missingMember = ooe {} // expected-error {{type 'E??' has no member 'missingMember'}}
462
+
if case .method()= ooe {} // Ok
463
+
if case .methodArg(())= ooe {} // Ok
464
+
465
+
enumM{
466
+
case m
467
+
staticfunc `none`(_:Void)->Self{.m }
468
+
}
469
+
470
+
letom:M?=.m
471
+
472
+
switch om {
473
+
case.none:break // Ok
474
+
default:break
475
+
}
435
476
}
436
477
437
478
// rdar://problem/60048356 - `if case` fails when `_` pattern doesn't have a label
0 commit comments