|
1 /* |
|
2 * @test /nodynamiccopyright/ |
|
3 * @bug 8003280 |
|
4 * @summary Add lambda tests |
|
5 * check that raw qualifier in unbound method reference is inferred from descriptor |
|
6 * @compile/fail/ref=MethodReference48.out -XDrawDiagnostics MethodReference48.java |
|
7 */ |
|
8 |
|
9 public class MethodReference48 { |
|
10 |
|
11 static class Foo<X> { |
|
12 X m() { return null; }; |
|
13 } |
|
14 |
|
15 interface SAM1 { |
|
16 Foo<Object> m(Foo<String> fs); |
|
17 } |
|
18 |
|
19 interface SAM2 { |
|
20 Integer m(Foo<Integer> fi); |
|
21 } |
|
22 |
|
23 interface SAM3 { |
|
24 Object m(Foo<Integer> fi); |
|
25 } |
|
26 |
|
27 static void g1(SAM1 s) { } //return type not compatible |
|
28 |
|
29 static void g2(SAM2 s) { } //ok |
|
30 |
|
31 static void g3(SAM3 s) { } //ok |
|
32 |
|
33 static void g4(SAM1 s) { } //return type not compatible |
|
34 static void g4(SAM2 s) { } //ok |
|
35 static void g4(SAM3 s) { } //ok |
|
36 |
|
37 public static void main(String[] args) { |
|
38 g1(Foo::m); |
|
39 g2(Foo::m); |
|
40 g3(Foo::m); |
|
41 g4(Foo::m); |
|
42 } |
|
43 } |