Open
Description
Previous ID | SR-8213 |
Radar | None |
Original Reporter | @YOCKOW |
Type | Bug |
Environment
-
OS: macOS, Ubuntu 16.04
-
Swift: 4.1.2, 4.2-DEVELOPMENT-SNAPSHOT-2018-07-08
Additional Detail from JIRA
Votes | 0 |
Component/s | Compiler |
Labels | Bug, DiagnosticsQoI, StarterBug |
Assignee | Gabriel Igliozzi (JIRA) |
Priority | Medium |
md5: df5f44ab5b8a1d3c8ee6ed4a803d858c
is duplicated by:
- SR-11318 Incorrect "Case will never be executed" warning
Issue Description:
(As I commented on SR-8208,)
The compiler shows a wrong warning, when the following code is compiled:
enum E {
case a // only one case
}
func f(_ e0:E, _ e1:E) {
switch (e0, e1) {
case (.a, _): print("e0 is .a") // -> No warning.
}
switch (e0, e1) {
case (.a, _), (_, .a): print("e0 or e1 is .a") // -> warning: case will never be executed
}
}
f(.a, .a)
Consideration
- The warning should be
case will be always executed
(_, .a) will never match
- ... and so on
Metadata
Metadata
Assignees
Labels
Area → compiler: The SIL generation stageA deviation from expected or documented behavior. Also: expected but undesirable behavior.The Swift compiler itselfBug: Diagnostics Quality of ImplementationGood for newcomersFeature: pattern matchingFeature: patternsFeature: statementsFeature → statements: 'switch' statementsFeature → statements → switch: 'switch' statement casesArea → compiler: Semantic analysis