[java] multifaceted switch labels: basic highlighting (IDEA-196643)

This commit is contained in:
Roman Shevchenko
2018-11-08 17:11:20 +01:00
parent 37e4af6d8a
commit dca9f4a33d
4 changed files with 88 additions and 45 deletions
@@ -59,6 +59,19 @@ class EnhancedSwitchStatements {
switch (E.valueOf("E1")) {
case <error descr="Constant expression required">null</error> -> noop();
case <error descr="An enum switch case label must be the unqualified name of an enumeration constant">E.E1</error> -> noop();
case E2 -> noop();
}
switch (new Random().nextInt()) {
case <error descr="Duplicate label '1'">1</error>, <error descr="Duplicate label '1'">1</error> -> noop();
}
switch (new Random().nextInt()) {
case 1, <error descr="Duplicate label '2'">2</error>:
noop(); break;
case 3, <error descr="Duplicate label '2'">2</error>:
noop(); break;
}
}
@@ -29,6 +29,9 @@ class UnsupportedFeatures {
<error descr="Enhanced 'switch' blocks are not supported at language level '6'">case 0 -> throw new IllegalStateException("empty list");</error>
default -> System.out.println("it's okay");
}
switch (list.size()) {
case <error descr="Enhanced 'switch' blocks are not supported at language level '6'">1, 2</error>:
}
}
void f(<error descr="Receiver parameters are not supported at language level '6'">Object this</error>) { }