test/tools/javac/lambda/T8042759/ImplicitLambdaConsideredForApplicabilityTest.java

Thu, 26 Mar 2015 11:34:50 +0100

author
jlahoda
date
Thu, 26 Mar 2015 11:34:50 +0100
changeset 2734
ba758e1ffa69
parent 0
959103a6100f
permissions
-rw-r--r--

8054220: Debugger doesn't show variables *outside* lambda
8058227: Debugger has no access to outer variables inside Lambda
Summary: Put local variables captured by lambda into the lambda method's LocalVariableTable.
Reviewed-by: mcimadamore, rfield

aoqi@0 1 /*
aoqi@0 2 * @test /nodynamiccopyright/
aoqi@0 3 * @bug 8042759
aoqi@0 4 * @summary Lambda returning implicitly-typed lambdas considered pertinent to applicability
aoqi@0 5 * @compile/fail/ref=ImplicitLambdaConsideredForApplicabilityTest.out -XDrawDiagnostics ImplicitLambdaConsideredForApplicabilityTest.java
aoqi@0 6 */
aoqi@0 7
aoqi@0 8 abstract class ImplicitLambdaConsideredForApplicabilityTest {
aoqi@0 9 interface A {
aoqi@0 10 B m(int a, int b);
aoqi@0 11 }
aoqi@0 12
aoqi@0 13 interface C {
aoqi@0 14 String m(int a, int b);
aoqi@0 15 }
aoqi@0 16
aoqi@0 17 interface B {
aoqi@0 18 int m(int c);
aoqi@0 19 }
aoqi@0 20
aoqi@0 21 abstract void foo(A a);
aoqi@0 22
aoqi@0 23 abstract void foo(C c);
aoqi@0 24
aoqi@0 25 void bar() {
aoqi@0 26 foo((int a, int b) -> {
aoqi@0 27 if(a < b)
aoqi@0 28 return c -> 0;
aoqi@0 29 else
aoqi@0 30 return c -> 0;
aoqi@0 31 });
aoqi@0 32 }
aoqi@0 33 }

mercurial