1/*
2 * @test /nodynamiccopyright/
3 * @bug 8003280 8081271
4 * @summary Add lambda tests
5 *  spurious exceptions when checking references to inner constructors where
6 *          the enclosing class is not defined in any outer context
7 * @compile/fail/ref=MethodReference37.out -XDrawDiagnostics MethodReference37.java
8 */
9
10class MethodReference37 {
11
12    interface SAM1<R> {
13        R invoke();
14    }
15
16    interface SAM2<R, A> {
17        R invoke(A a);
18    }
19
20    static class Outer {
21        class Inner { }
22
23        void test1() {
24            SAM2<Inner, Outer> sam = Inner::new;
25        }
26
27        void test2() {
28            SAM1<Inner> sam0 = Inner::new;
29            SAM2<Inner, Outer> sam1 = Inner::new;
30        }
31    }
32
33    static void test1() {
34        SAM2<Outer.Inner, Outer> sam = Outer.Inner::new;
35    }
36
37    void test2() {
38        SAM2<Outer.Inner, Outer> sam1 = Outer.Inner::new;
39    }
40}
41