author | sogoel |
Thu, 22 May 2014 15:42:10 -0700 | |
changeset 24608 | 71f05b7d5c10 |
parent 24404 | cf534ffbc9d8 |
permissions | -rw-r--r-- |
14547 | 1 |
/* |
2 |
* @test /nodynamiccopyright/ |
|
24608
71f05b7d5c10
8043336: Missing bug id in test/tools/javac/lambda/TargetType23.java
sogoel
parents:
24404
diff
changeset
|
3 |
* @bug 8003280 8034223 |
14547 | 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 |
||
24404
cf534ffbc9d8
8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents:
14547
diff
changeset
|
34 |
void call2(Sam0 s) { } |
cf534ffbc9d8
8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents:
14547
diff
changeset
|
35 |
void call2(Sam2 s) { } |
cf534ffbc9d8
8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents:
14547
diff
changeset
|
36 |
<Z> void call2(Sam3<Z> s) { } |
cf534ffbc9d8
8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents:
14547
diff
changeset
|
37 |
|
14547 | 38 |
void test() { |
24404
cf534ffbc9d8
8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents:
14547
diff
changeset
|
39 |
call(()-> { throw new RuntimeException(); }); // ambiguous - call(Sam1) vs. call(Sam2) |
cf534ffbc9d8
8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents:
14547
diff
changeset
|
40 |
call2(()-> { throw new RuntimeException(); }); // ok |
14547 | 41 |
} |
42 |
} |