jdk-24/test/langtools/tools/javac/generics/diamond/neg/Neg13.java

50 lines
1.2 KiB
Java
Raw Normal View History

/*
* @test /nodynamiccopyright/
* @bug 8062373
*
* @summary Test diamond + anonymous classes with abstract super type
* @author sadayapalam
* @compile/fail/ref=Neg13.out Neg13.java -XDrawDiagnostics
*
*/
class Neg13 {
static abstract class A<T> {
abstract void foo();
}
static void foo(A<String> as) {}
public static void meth() {
// 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 abstract class 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<>();
}
}