test/tools/javac/lambda/TargetType23.java

changeset 0
959103a6100f
child 2525
2eb010b6cb22
equal deleted inserted replaced
-1:000000000000 0:959103a6100f
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 8003280
4 * @summary Add lambda tests
5 * check case of ambiguous method call with lambda whose body cannot
6 complete normally
7 * @compile/fail/ref=TargetType23.out -XDrawDiagnostics TargetType23.java
8 */
9
10 class TargetType23 {
11
12 interface Sam0 {
13 void m();
14 }
15
16 interface Sam1 {
17 int m();
18 }
19
20 interface Sam2 {
21 String m();
22 }
23
24 interface Sam3<A> {
25 A m();
26 }
27
28
29 void call(Sam0 s) { }
30 void call(Sam1 s) { }
31 void call(Sam2 s) { }
32 <Z> void call(Sam3<Z> s) { }
33
34 void call2(Sam0 s) { }
35 void call2(Sam2 s) { }
36 <Z> void call2(Sam3<Z> s) { }
37
38 void test() {
39 call(()-> { throw new RuntimeException(); }); // ambiguous - call(Sam1) vs. call(Sam2)
40 call2(()-> { throw new RuntimeException(); }); // ok
41 }
42 }

mercurial