[java] 'yield' statement: basic highlighting (IDEA-216410)

GitOrigin-RevId: 4edae910f16a27c2a46068c2d8b6fce4674e0571
This commit is contained in:
Roman Shevchenko
2019-07-02 06:52:16 +03:00
committed by intellij-monorepo-bot
parent 6941d27505
commit 06d3d41999
9 changed files with 111 additions and 9 deletions
@@ -0,0 +1,40 @@
class YieldStatements {
void m(int i) {
System.out.println(switch (i) {
case 0: yield "zero";
default: <error descr="Value breaks are superseded by 'yield' statements">break "many";</error>
});
switch (i) {
default: <error descr="Yield outside of switch expression">yield 0;</error>
}
System.out.println(switch (i) {
default:
Runnable r = () -> { <error descr="Yield outside of switch expression">yield 0;</error> };
r.run();
yield 0;
});
System.out.println(switch (i) {
default: switch (i) {
default: yield "0";
}
});
out: while (true) {
System.out.println(switch (i) {
case 0: <error descr="Break outside of enclosing switch expression">break;</error>
case 1: <error descr="Value breaks are superseded by 'yield' statements">break i;</error>
default: <error descr="Break outside of enclosing switch expression">break out;</error>
});
}
System.out.println(switch (i) {
default: yield <error descr="Expression type should not be 'void'">m(0)</error>;
});
int yield = i;
i = switch (i) {
default: yield yield;
};
}
}