/* * @test /nodynamiccopyright/ * @bug 8206986 * @summary Adding switch expressions * @compile/fail/ref=BadSwitchExpressionLambda.out -XDrawDiagnostics BadSwitchExpressionLambda.java */ class BadSwitchExpressionLambda { interface SAM { void invoke(); } public static void m() {} public static void r(SAM sam) {} void test(int i) { SAM sam1 = () -> m(); //ok SAM sam2 = () -> switch (i) { case 0 -> m(); default -> m(); }; //not ok r(() -> m()); //ok r(() -> switch (i) { case 0 -> m(); default -> m(); }); //not ok return switch (i) { case 0 -> m(); default -> m(); }; //not ok } }