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 */
8
9class T7030606 {
10    class E1 extends Exception { }
11    class E2 extends E1 { }
12
13    void e1() throws E1 { }
14    void e2() throws E2 { }
15
16    void m1() {
17        try {
18            e1();
19            e2();
20        } catch (NonExistentType | E2 | E1 e) { }
21    }
22
23    void m2() {
24        try {
25            e1();
26            e2();
27        } catch (NonExistentType | E1 | E2 e) { }
28    }
29
30    void m3() {
31        try {
32            e1();
33            e2();
34        } catch (E2 | NonExistentType | E1 e) { }
35    }
36
37    void m4() {
38        try {
39            e1();
40            e2();
41        } catch (E1 | NonExistentType | E2 e) { }
42    }
43
44    void m5() {
45        try {
46            e1();
47            e2();
48        } catch (E2 | E1 | NonExistentType e) { }
49    }
50
51    void m6() {
52        try {
53            e1();
54            e2();
55        } catch (E1 | E2 | NonExistentType  e) { }
56    }
57}
58