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