test/tools/javac/lambda/TargetType28.java

Tue, 12 Mar 2013 16:02:43 +0000

author
mcimadamore
date
Tue, 12 Mar 2013 16:02:43 +0000
changeset 1628
5ddecb91d843
parent 0
959103a6100f
permissions
-rw-r--r--

8009545: Graph inference: dependencies between inference variables should be set during incorporation
Summary: Move all transitivity checks into the incorporation round
Reviewed-by: jjg

     1 /*
     2  * @test /nodynamiccopyright/
     3  * @bug 8003280
     4  * @summary Add lambda tests
     5  *  target type inference in a case where lambda expression returns diamond
     6  * @compile/fail/ref=TargetType28.out -XDrawDiagnostics TargetType28.java
     7  */
     9 class TargetType28 {
    10     static class SuperFoo<X> {}
    12     static class Foo<X extends Number> extends SuperFoo<X> {}
    14     interface A<X, Y> {
    15        SuperFoo<Y> m(X x);
    16     }
    18     <Z, R> SuperFoo<R> apply(A<Z, R> ax, Z x) { return null; }
    20     SuperFoo<String> ls = apply(x-> new Foo<>(), 1);
    21     SuperFoo<Integer> li = apply(x-> new Foo<>(), 1);
    22     SuperFoo<?> lw = apply(x-> new Foo<>(), 1);
    23 }

mercurial