langtools/test/tools/javac/T8175790/NPEDueToErroneousLambdaTest.java
changeset 44060 f420de7e26fa
equal deleted inserted replaced
44059:ffabdccaf58b 44060:f420de7e26fa
       
     1 /*
       
     2  * @test /nodynamiccopyright/
       
     3  * @bug 8175790
       
     4  * @summary field JCVariableDecl.vartype can't be null after post attribution analysis
       
     5  * @compile/fail/ref=NPEDueToErroneousLambdaTest.out -XDrawDiagnostics NPEDueToErroneousLambdaTest.java
       
     6  */
       
     7 
       
     8 import java.util.List;
       
     9 import java.util.function.Function;
       
    10 
       
    11 public abstract class NPEDueToErroneousLambdaTest {
       
    12 
       
    13     interface R {}
       
    14     interface A {}
       
    15     interface S {}
       
    16 
       
    17     abstract <I, O> Function<I, O> p(final Function<I, O> function);
       
    18     abstract <I, O> List<O> t(Function<? super I, ? extends O> function);
       
    19 
       
    20     public void f() {
       
    21         t(p(new Function<A, Object>() {
       
    22             public List<Object> apply(A a) throws Exception {
       
    23                 return t((Function<R, S>)input -> {
       
    24                         return t(p((Function<Boolean, S>) i -> null), null);
       
    25                 });
       
    26             }
       
    27         }));
       
    28     }
       
    29 }