/* * @test /nodynamiccopyright/ * @bug 8212982 * @summary Verify a compile-time error is produced if switch expression does not provide a value * @compile/fail/ref=ExpressionSwitchFlow.out -XDrawDiagnostics ExpressionSwitchFlow.java */ public class ExpressionSwitchFlow { private String test1(int i) { return switch (i) { case 0 -> {} default -> { yield "other"; } }; } private String test2(int i) { return switch (i) { case 0 -> { } default -> "other"; }; } private String test3(int i) { return switch (i) { case 0 -> {} case 1 -> ""; default -> throw new IllegalStateException(); }; } private String test4(int i) { return switch (i) { case 0 -> { yield "other"; } default -> {} }; } private String test5(int i) { return switch (i) { case 0 -> "other"; default -> {} }; } private String test6(int i) { return switch (i) { case 0 -> throw new IllegalStateException(); case 1 -> ""; default -> {} }; } private String test7(int i) { return switch (i) { case 0: throw new IllegalStateException(); case 1: yield ""; default: }; } private String test8(int i) { return switch (i) { case 1: yield ""; case 0: i++; default: { } }; } private String test9(int i) { return switch (i) { case 1: yield ""; case 0: default: System.err.println(); }; } }