test/tools/javac/lambda/TargetType02.java

Tue, 22 Apr 2014 17:55:22 +0100

author
vromero
date
Tue, 22 Apr 2014 17:55:22 +0100
changeset 2370
acd64168cf8b
parent 2000
4a6acc42c3a1
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8029718: Should always use lambda body structure to disambiguate overload resolution
Reviewed-by: dlsmith, jjg, jlahoda

mcimadamore@1415 1 /*
vromero@2370 2 * @test /nodynamiccopyright/
vromero@2370 3 * @bug 8003280 8029718
mcimadamore@1415 4 * @summary Add lambda tests
mcimadamore@1415 5 * check overload resolution and target type inference w.r.t. generic methods
vromero@2370 6 * Should always use lambda body structure to disambiguate overload resolution
mcimadamore@1415 7 * @author Maurizio Cimadamore
vromero@2000 8 * @compile/fail/ref=TargetType02.out -XDrawDiagnostics TargetType02.java
mcimadamore@1415 9 */
mcimadamore@1415 10
mcimadamore@1415 11 public class TargetType02 {
mcimadamore@1415 12
mcimadamore@1415 13 interface S1<X extends Number> {
mcimadamore@1415 14 X m(Integer x);
mcimadamore@1415 15 }
mcimadamore@1415 16
mcimadamore@1415 17 interface S2<X extends String> {
mcimadamore@1415 18 abstract X m(Integer x);
mcimadamore@1415 19 }
mcimadamore@1415 20
vromero@2000 21 static <Z extends Number> void call1(S1<Z> s) { }
vromero@2000 22
vromero@2000 23 static <Z extends String> void call2(S2<Z> s) { }
vromero@2000 24
vromero@2000 25 static <Z extends Number> void call3(S1<Z> s) { }
vromero@2000 26 static <Z extends String> void call3(S2<Z> s) { }
mcimadamore@1415 27
vromero@2370 28 static <Z extends Number> Z call4(S1<Z> s) { return null; }
vromero@2370 29 static <Z extends String> Z call4(S2<Z> s) { return null; }
vromero@2370 30
mcimadamore@1415 31 void test() {
vromero@2000 32 call1(i -> { toString(); return i; });
vromero@2000 33 call2(i -> { toString(); return i; });
vromero@2000 34 call3(i -> { toString(); return i; });
vromero@2370 35 call3(i -> {
vromero@2370 36 toString();
vromero@2370 37 return call4(j -> {
vromero@2370 38 return j;
vromero@2370 39 });
vromero@2370 40 });
mcimadamore@1415 41 }
mcimadamore@1415 42 }

mercurial