test/tools/javac/lambda/MostSpecific03.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 correctness of structural most specific test routine
6 * @compile/fail/ref=MostSpecific03.out -XDrawDiagnostics MostSpecific03.java
7 */
8
9 class Test {
10
11 interface IntMapper {
12 int map();
13 }
14
15 interface LongMapper {
16 long map();
17 }
18
19 void m(IntMapper... im) { }
20 void m(LongMapper... lm) { }
21
22 void m2(IntMapper im1, IntMapper... im) { }
23 void m2(LongMapper... lm) { }
24
25 void test1() {
26 m(); //ambiguous
27 m(()->1); //ok
28 m(()->1, ()->1); //ok
29 m(()->1, ()->1, ()->1); //ok
30 }
31
32 void test2() {
33 m(null, null); //ambiguous
34 m(()->1, null); //ambiguous
35 m(null, ()->1); //ambiguous
36 m(()->1L, null); //ok
37 m(null, ()->1L); //ok
38 }
39
40 void test3() {
41 m2(); //ok
42 m2(()->1); //ambiguous
43 m2(()->1, ()->1); //ok
44 m2(()->1, ()->1, ()->1); //ok
45 }
46
47 void test4() {
48 m2(null, null, null); //ambiguous
49 m2(()->1, null, null); //ambiguous
50 m2(null, ()->1, null); //ambiguous
51 m2(null, null, ()->1); //ambiguous
52 m2(()->1, ()->1, null); //ambiguous
53 m2(null, ()->1, ()->1); //ambiguous
54 m2(()->1, null, ()->1); //ambiguous
55
56 m2(()->1L, null, null); //ok
57 m2(null, ()->1L, null); //ok
58 m2(null, null, ()->1L); //ok
59 m2(()->1L, ()->1L, null); //ok
60 m2(null, ()->1L, ()->1L); //ok
61 m2(()->1L, null, ()->1L); //ok
62 }
63 }

mercurial