test/langtools/tools/javac/switchexpr/ExpressionSwitchFlow.java
author chegar
Thu, 17 Oct 2019 20:54:25 +0100
branchdatagramsocketimpl-branch
changeset 58679 9c3209ff7550
parent 58678 9cf78a70fa4f
parent 55528 bad3754349aa
permissions -rw-r--r--
datagramsocketimpl-branch: merge with default
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     1
/*
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     2
 * @test /nodynamiccopyright/
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     3
 * @bug 8212982
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     4
 * @summary Verify a compile-time error is produced if switch expression does not provide a value
53878
4584d0331318 8219254: Update explicit uses of latest source/target in langtools tests to a property
darcy
parents: 53023
diff changeset
     5
 * @compile/fail/ref=ExpressionSwitchFlow.out --enable-preview -source ${jdk.version} -XDrawDiagnostics ExpressionSwitchFlow.java
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     6
 */
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     7
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     8
public class ExpressionSwitchFlow {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
     9
    private String test1(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    10
        return switch (i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    11
            case 0 -> {}
55306
ea43db53de91 8223305: Compiler support for Switch Expressions
jlahoda
parents: 53878
diff changeset
    12
            default -> { yield "other"; }
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    13
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    14
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    15
    private String test2(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    16
        return switch (i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    17
            case 0 -> {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    18
            }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    19
            default -> "other";
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    20
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    21
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    22
    private String test3(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    23
        return switch (i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    24
            case 0 -> {}
55528
bad3754349aa 8226510: No compilation error when switch expression has no result expressions
jlahoda
parents: 55306
diff changeset
    25
            case 1 -> "";
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    26
            default -> throw new IllegalStateException();
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    27
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    28
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    29
    private String test4(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    30
        return switch (i) {
55306
ea43db53de91 8223305: Compiler support for Switch Expressions
jlahoda
parents: 53878
diff changeset
    31
            case 0 -> { yield "other"; }
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    32
            default -> {}
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    33
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    34
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    35
    private String test5(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    36
        return switch (i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    37
            case 0 -> "other";
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    38
            default -> {}
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    39
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    40
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    41
    private String test6(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    42
        return switch (i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    43
            case 0 -> throw new IllegalStateException();
55528
bad3754349aa 8226510: No compilation error when switch expression has no result expressions
jlahoda
parents: 55306
diff changeset
    44
            case 1 -> "";
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    45
            default -> {}
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    46
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    47
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    48
    private String test7(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    49
        return switch (i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    50
            case 0: throw new IllegalStateException();
55528
bad3754349aa 8226510: No compilation error when switch expression has no result expressions
jlahoda
parents: 55306
diff changeset
    51
            case 1: yield "";
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    52
            default:
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    53
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    54
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    55
    private String test8(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    56
        return switch (i) {
55528
bad3754349aa 8226510: No compilation error when switch expression has no result expressions
jlahoda
parents: 55306
diff changeset
    57
            case 1: yield "";
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    58
            case 0: i++;
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    59
            default: {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    60
            }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    61
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    62
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    63
    private String test9(int i) {
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    64
        return switch (i) {
55528
bad3754349aa 8226510: No compilation error when switch expression has no result expressions
jlahoda
parents: 55306
diff changeset
    65
            case 1: yield "";
52635
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    66
            case 0:
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    67
            default:
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    68
                System.err.println();
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    69
        };
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    70
    }
6938c8ef179a 8212982: Rule cases in switch expression accepted even if complete normally
jlahoda
parents:
diff changeset
    71
}