1 /*
2  * @test /nodynamiccopyright/
3  * @bug 8003280
4  * @summary Add lambda tests
5  *  certain cases of erroneous member reference lookup are not handled by Attr.visitReference
6  * @compile/fail/ref=MethodReference51.out -XDrawDiagnostics MethodReference51.java
7  */
8 class MethodReference51 {
9 
10     private static class Foo {
j(int i)11         static int j(int i) { return i; }
12     }
13 
14     static Foo foo = new Foo();
15 
m(String s)16     static void m(String s) { }
m(Integer i)17     static void m(Integer i) { }
18 
f(String s)19     static int f(String s) { return 1; }
20 
g(Integer i, Number n)21     static int g(Integer i, Number n) { return 1; }
g(Number n, Integer i)22     static int g(Number n, Integer i) { return 1; }
23 
h(int i)24     int h(int i) { return i; }
25 }
26 
27 class TestMethodReference51 {
28 
29     interface IntSam {
m(int i)30         int m(int i);
31     }
32 
33     interface IntegerIntegerSam {
m(Integer i1, Integer i2)34         int m(Integer i1, Integer i2);
35     }
36 
37 
test()38     static void test() {
39         IntSam s1 = MethodReference51::unknown; //fail
40         IntSam s2 = MethodReference51::f; //fail
41         IntSam s3 = MethodReference51::g; //fail
42         IntegerIntegerSam s4 = MethodReference51::g; //fail
43         IntSam s5 = MethodReference51::h; //fail
44         IntSam s6 = MethodReference51.foo::j; //fail
45     }
46 }
47