jdk-24/langtools/test/tools/javac/lambda/MethodReference37.java
Srikanth Adayapalam 4815781a4a 8081271: NPE while compiling a program with erroneous use of constructor reference expressions
Missing enclosing instance error should not be swallowed when attributing constructor reference expressions.

Reviewed-by: mcimadamore, vromero
2015-05-29 09:15:42 +05:30

41 lines
896 B
Java

/*
* @test /nodynamiccopyright/
* @bug 8003280 8081271
* @summary Add lambda tests
* spurious exceptions when checking references to inner constructors where
* the enclosing class is not defined in any outer context
* @compile/fail/ref=MethodReference37.out -XDrawDiagnostics MethodReference37.java
*/
class MethodReference37 {
interface SAM1<R> {
R invoke();
}
interface SAM2<R, A> {
R invoke(A a);
}
static class Outer {
class Inner { }
void test1() {
SAM2<Inner, Outer> sam = Inner::new;
}
void test2() {
SAM1<Inner> sam0 = Inner::new;
SAM2<Inner, Outer> sam1 = Inner::new;
}
}
static void test1() {
SAM2<Outer.Inner, Outer> sam = Outer.Inner::new;
}
void test2() {
SAM2<Outer.Inner, Outer> sam1 = Outer.Inner::new;
}
}