test/tools/javac/lambda/MethodReference45.java

changeset 0
959103a6100f
equal deleted inserted replaced
-1:000000000000 0:959103a6100f
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 8003280
4 * @summary Add lambda tests
5 * check that generic method reference is inferred when type parameters are omitted
6 * @compile/fail/ref=MethodReference45.out -XDrawDiagnostics MethodReference45.java
7 */
8 public class MethodReference45 {
9
10 static int assertionCount = 0;
11
12 static void assertTrue(boolean cond) {
13 assertionCount++;
14 if (!cond)
15 throw new AssertionError();
16 }
17
18 static class SuperFoo<X> { }
19
20 static class Foo<X extends Number> extends SuperFoo<X> { }
21
22 interface SAM1 {
23 void m();
24 }
25
26 interface SAM2 {
27 void m();
28 }
29
30 static <X extends Number> Foo<X> m() { return null; }
31
32 static void g1(SAM1 s) { }
33 static void g2(SAM1 s) { }
34 static void g2(SAM2 s) { }
35
36 void test() {
37 g1(MethodReference45::m);
38 g2(MethodReference45::m);
39 }
40 }

mercurial