test/langtools/tools/javac/switchexpr/ExpressionSwitchNotExhaustive.java
author darcy
Thu, 13 Dec 2018 19:06:11 +0100
changeset 53023 6879069d9d94
parent 51563 de411d537aae
child 53878 4584d0331318
permissions -rw-r--r--
8205626: Start of release updates for JDK 13 8205393: Add SourceVersion.RELEASE_13 8205394: Add source 13 and target 13 to javac 8205645: Bump maximum recognized class file version to 57 for JDK 13 8214825: Update preview language features for start of JDK 13 Reviewed-by: erikj, alanb, mchung, mcimadamore, dholmes, smarks, jjg

/*
 * @test /nodynamiccopyright/
 * @bug 8206986
 * @summary Verify behavior of not exhaustive switch expressions.
 * @compile/fail/ref=ExpressionSwitchNotExhaustive.out -XDrawDiagnostics --enable-preview -source 13 ExpressionSwitchNotExhaustive.java
 */

public class ExpressionSwitchNotExhaustive {
    private String print(int i) {
        return switch (i) {
            case 42 -> "42";
            case 43 -> "43";
        };
    }
    private String e(E e) {
        return switch (e) {
            case A -> "42";
        };
    }
    private String f(int i, E e) {
        return switch (i) {
            case 0:
                String s;
                switch (e) {
                    case A:
                        s = "42";
                        break;
                }
                break s;
            default:
                break "43";
        };
    }
    enum E {
        A, B;
    }
}