class ValueBreaks { static final int ref = -1; void m() { l1: break l1; break; break wtf; break 42; switch (0) { case 0: yield 42; case 1: break ref; case 2: break wtf; case 3: ref: break ref; case 4: ref: yield (ref); }; sink(switch (0) { case 0 -> { while (true) break 42; } case 1 -> { while (true) break ref; } case 2 -> { while (true) break wtf; } case 3 -> { yield ref; } case 4 -> { yield (ref); } case 5 -> { break wtf; } case 6 -> { int a = 0; a: switch (0) { default: break a; } } default -> throw new RuntimeException(); }); switch (0) { case 0 -> { while (true) break ref; } case 1 -> { int a = 0; a: switch (0) { default: break a; } } } ref: sink(switch (0) { default: break ref; }); while (true) { sink(switch (0) { default: yield; }); } } private static void sink(Object o) { } }