Mon, 02 Sep 2013 22:38:36 +0100
8016177: structural most specific and stuckness
Reviewed-by: jjg, vromero
Contributed-by: maurizio.cimadamore@oracle.com
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 7030606
4 *
5 * @summary Project-coin: multi-catch types should be pairwise disjoint
6 * @compile/fail/ref=T7030606.out -XDrawDiagnostics T7030606.java
7 */
9 class T7030606 {
10 class E1 extends Exception { }
11 class E2 extends E1 { }
13 void e1() throws E1 { }
14 void e2() throws E2 { }
16 void m1() {
17 try {
18 e1();
19 e2();
20 } catch (NonExistentType | E2 | E1 e) { }
21 }
23 void m2() {
24 try {
25 e1();
26 e2();
27 } catch (NonExistentType | E1 | E2 e) { }
28 }
30 void m3() {
31 try {
32 e1();
33 e2();
34 } catch (E2 | NonExistentType | E1 e) { }
35 }
37 void m4() {
38 try {
39 e1();
40 e2();
41 } catch (E1 | NonExistentType | E2 e) { }
42 }
44 void m5() {
45 try {
46 e1();
47 e2();
48 } catch (E2 | E1 | NonExistentType e) { }
49 }
51 void m6() {
52 try {
53 e1();
54 e2();
55 } catch (E1 | E2 | NonExistentType e) { }
56 }
57 }