diff -r 000000000000 -r 959103a6100f test/tools/javac/lambda/MethodReference37.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/lambda/MethodReference37.java Wed Apr 27 01:34:52 2016 +0800 @@ -0,0 +1,40 @@ +/* + * @test /nodynamiccopyright/ + * @bug 8003280 + * @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 invoke(); + } + + interface SAM2 { + R invoke(A a); + } + + static class Outer { + class Inner { } + + static void test1() { + SAM2 sam = Inner::new; + } + + void test2() { + SAM1 sam0 = Inner::new; + SAM2 sam1 = Inner::new; + } + } + + static void test1() { + SAM2 sam = Outer.Inner::new; + } + + void test2() { + SAM2 sam1 = Outer.Inner::new; + } +}