test/tools/javac/lambda/TargetType33.java

Fri, 05 Jul 2013 11:02:17 +0100

author
mcimadamore
date
Fri, 05 Jul 2013 11:02:17 +0100
changeset 1888
70b37cdb19d5
parent 0
959103a6100f
permissions
-rw-r--r--

8019480: Javac crashes when method is called on a type-variable receiver from lambda expression
Summary: Logic for shortcircuiting speculative attribution doesn't handle type-variable receivers
Reviewed-by: jjg, vromero

     1 /*
     2  * @test /nodynamiccopyright/
     3  * @bug 8003280
     4  * @summary Add lambda tests
     5  *  crash when incompatible method reference is found in conditional expression
     6  * @compile/fail/ref=TargetType33.out -XDrawDiagnostics TargetType33.java
     7  */
     9 class TargetType33 {
    11     interface A<X> {
    12         X m();
    13     }
    15     void m(A<Integer> a) { }
    16     <Z> void m2(A<Z> a) { }
    18     int intRes(Object o) { return 42; }
    20     void testMethodRef(boolean flag) {
    21         A<Integer> c = flag ? this::intRes : this::intRes;
    22         m(flag ? this::intRes : this::intRes);
    23         m2(flag ? this::intRes : this::intRes);
    24     }
    25 }

mercurial