/* * @test /nodynamiccopyright/ * @bug 8062373 * * @summary Test diamond + anonymous classes with super type being an interface. * @author sadayapalam * @compile/fail/ref=Neg14.out Neg14.java -XDrawDiagnostics * */ class Neg14 { static interface A<T> { void foo(); } static void foo(A<String> as) {} public static void main(String[] args) { // Method invocation context - good <>(){} foo(new A<>() { public void foo() {} }); // Assignment context - good <>(){} A<?> aq = new A<>() { public void foo() {} }; // When the anonymous type subtypes an interface but is missing definitions for // abstract methods, expect no overload resolution error, but an attribution error // while attributing anonymous class body. // Method invocation context - bad <>(){} foo(new A<>() { }); // Assignment invocation context - bad <>(){} aq = new A<>() { }; // Method invocation context - bad <>() foo(new A<>()); // Assignment invocation context - bad <>() aq = new A<>(); } }