Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingPatternsInSwitch/Reachability.java
Mikhail Pyltsin 5237df5eb3 [java-highlighting] IDEA-324880 Exhaustive switches can produce definitely assigned variables
GitOrigin-RevId: 7e644a2565803fdd900830d986dba481aeb127db
2023-07-12 11:06:36 +00:00

58 lines
1.2 KiB
Java

import java.util.*;
class Test {
void testEnumRechable1(Day d) {
switch (d) {
case MONDAY, TUESDAY:
throw new IllegalArgumentException();
default:
break;
}
System.out.println();
}
void testEnumUnreachable2(Day d) {
switch (d) {
case Day dd when true:
throw new IllegalArgumentException();
}
<error descr="Unreachable statement">System.out.println();</error>
}
void testSealedClassReachable1(I i) {
switch (i) {
case First f:
throw new IllegalArgumentException();
case Second s:
break;
}
System.out.println();
}
void testSealedClassReachable2(I i) {
switch (i) {
case First f:
throw new IllegalArgumentException();
case Second s:
throw new IllegalArgumentException();
}
<error descr="Unreachable statement">System.out.println();</error>
}
void testSealedClassUnreachable1(I i) {
switch (i) {
case Object o:
throw new IllegalArgumentException();
}
<error descr="Unreachable statement">System.out.println();</error>
}
}
enum Day {
MONDAY, TUESDAY, WEDNESDAY
}
sealed interface I {}
final class First implements I {}
final class Second implements I {}