author | chegar |
Thu, 17 Oct 2019 20:54:25 +0100 | |
branch | datagramsocketimpl-branch |
changeset 58679 | 9c3209ff7550 |
parent 58678 | 9cf78a70fa4f |
parent 55528 | bad3754349aa |
permissions | -rw-r--r-- |
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 | 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 | 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 |
} |