test/tools/javac/lambda/TargetType23.java

Wed, 14 May 2014 15:41:28 -0600

author
dlsmith
date
Wed, 14 May 2014 15:41:28 -0600
changeset 2395
9c577131ffa6
parent 1415
01c9d4161882
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
Summary: Rewrite most-specific logic to conform to JLS 8 15.12.2.5
Reviewed-by: vromero

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

mercurial