Fri, 10 Dec 2010 15:24:17 +0000
6199075: Unambiguous varargs method calls flagged as ambiguous
Summary: javac does not implement overload resolution w.r.t. varargs methods as described in the JLS
Reviewed-by: jjg
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 6943289
4 *
5 * @summary Project Coin: Improved Exception Handling for Java (aka 'multicatch')
6 * @author mcimadamore
7 * @compile/fail/ref=Neg05.out -XDrawDiagnostics Neg05.java
8 *
9 */
11 class Neg02 {
13 static class Foo<X> {
14 Foo(X x) {}
15 }
17 static interface Base<X> {}
18 static class A extends Exception implements Base<String> {}
19 static class B extends Exception implements Base<Integer> {}
21 void m() {
22 try {
23 if (true) {
24 throw new A();
25 }
26 else {
27 throw new B();
28 }
29 } catch (A | B ex) {
30 Foo<?> f = new Foo<>(ex);
31 }
32 }
33 }