Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/switchExpressions/YieldStatements.java
Roman Shevchenko 83258b1714 [java] fixes and unifies 'break'/'continue' highlighting
GitOrigin-RevId: 4472c012bbc690ce96bdc43baa4075c4c14c1c62
2019-07-03 01:13:10 +03:00

50 lines
1.7 KiB
Java

class YieldStatements {
static final int ref = -1;
void m(int i) {
<error descr="Case statement outside switch">default:</error> <error descr="Yield outside of switch expression">yield 0;</error>
l1: yield <error descr="Cannot resolve symbol 'l1'">l1</error>;
switch (i) {
default: <error descr="Yield outside of switch expression">yield 0;</error>
}
out: System.out.println(switch (i) {
case 1 -> { while (true) yield ref; }
case 2 -> { while (true) break <error descr="Undefined label: 'wtf'">wtf</error>; }
case 3 -> { yield ref; }
case 4 -> { yield (ref); }
case 5 -> { break <error descr="Undefined label: 'wtf'">wtf</error>; }
case 6 -> {
int a = 0;
a: switch (0) { default: yield a; }
}
case 7 -> {
Runnable r = () -> { <error descr="Yield outside of switch expression">yield 0;</error> };
r.run();
yield 0;
}
case 8 -> {
switch (i) { default -> { yield 0; } }
}
case 9 -> { yield<error descr="Expression expected">;</error> }
case 10 -> {
int yield = i;
yield yield;
}
case 11 -> { yield <error descr="Expression type should not be 'void'">m(0)</error>; }
case 12 -> {
switch (i) { default: <error descr="Break outside of enclosing switch expression">break out;</error>; }
}
default -> throw new RuntimeException();
});
out: while (true) {
System.out.println(switch (i) {
case 0: <error descr="Break outside of enclosing switch expression">break;</error>
default: <error descr="Break outside of enclosing switch expression">break out;</error>
});
}
}
}