1 /*
2  * @test /nodynamiccopyright/
3  * @bug 8003280
4  * @summary Add lambda tests
5  *  check that diamond inference is applied when using raw constructor reference qualifier
6  * @compile/fail/ref=MethodReference42.out -XDrawDiagnostics MethodReference42.java
7  */
8 
9 public class MethodReference42 {
10 
11     static class SuperFoo<X> { }
12 
13     static class Foo<X extends Number> extends SuperFoo<X> { }
14 
15     interface SAM1 {
m()16         SuperFoo<String> m();
17     }
18 
19     interface SAM2 {
m()20         SuperFoo<Integer> m();
21     }
22 
23     interface SAM3 {
m()24         SuperFoo<Object> m();
25     }
26 
m1(SAM1 s)27     static void m1(SAM1 s) { }
28 
m2(SAM2 s)29     static void m2(SAM2 s) { }
30 
m3(SAM3 s)31     static void m3(SAM3 s) { }
32 
m4(SAM1 s)33     static void m4(SAM1 s) { }
m4(SAM2 s)34     static void m4(SAM2 s) { }
m4(SAM3 s)35     static void m4(SAM3 s) { }
36 
main(String[] args)37     public static void main(String[] args) {
38         m1(Foo::new);
39         m2(Foo::new);
40         m3(Foo::new);
41         m4(Foo::new);
42     }
43 }
44