Skip to content

Files

Latest commit

 

History

History
62 lines (48 loc) · 980 Bytes

optional_enum_case_matching.md

File metadata and controls

62 lines (48 loc) · 980 Bytes

Pattern: Unsupported optional enum case matching

Issue: -

Description

Matching an enum case against an optional enum without ? is supported on Swift 5.1 and above.

Examples of correct code:

switch foo {
 case .bar: break
 case .baz: break
 default: break
}

switch foo {
 case (.bar, .baz): break
 case (.bar, _): break
 case (_, .baz): break
 default: break
}

Examples of incorrect code:

switch foo {
 case .bar↓?: break
 case .baz: break
 default: break
}

switch foo {
 case Foo.bar↓?: break
 case .baz: break
 default: break
}

switch foo {
 case .bar↓?, .baz↓?: break
 default: break
}

switch foo {
 case .bar↓? where x > 1: break
 case .baz: break
 default: break
}

switch foo {
 case (.bar↓?, .baz↓?): break
 case (.bar↓?, _): break
 case (_, .bar↓?): break
 default: break
}

Further Reading