Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingPatternsInSwitch/SameVariableNameInPatternMatchingInSwitch.java
Andrey Cherkasov 9ccc820db2 [java] Remove Java 17 Preview and Java 18 Preview language levels
IDEA-314047

GitOrigin-RevId: 8c24deb2dfb5361f08857d7933ab290476f4ce84
2023-06-19 17:37:05 +00:00

53 lines
1.3 KiB
Java

class Main {
void statement(Object o) {
switch (o) {
case Integer n when n > 1:
break;
case Integer n when n < 1:
break;
default:
break;
}
}
int expression(Object o) {
return switch (o) {
case Integer n when n > 1 -> n;
case Integer n when n < 1 -> n;
default -> 0;
};
}
int nestedExpression(Object o, Object o2, int p) {
int m = 0;
return switch (o) {
case Integer n when n > 1 -> switch(o2) {
case Integer <error descr="Variable 'm' is already defined in the scope">m</error> when m > 0 -> m + n;
case Integer <error descr="Variable 'p' is already defined in the scope">p</error> -> p + n;
default -> 0;
};
case Integer n when n < 1 -> n;
default -> 0;
};
}
void nestedStatement(Object o, Object o2, int p) {
int m = 0;
switch (o) {
case Integer n when n < 1:
n ++;
case Integer n when n > 1:
switch(o2) {
case Integer <error descr="Variable 'm' is already defined in the scope">m</error> when m > 0:
m += n;
case Integer <error descr="Variable 'p' is already defined in the scope">p</error> when p > 0:
p += n + m;
break;
case Integer p1:
p += n + m + p1;
};
break;
};
}
}