test/tools/javac/lambda/8020147/T8020147.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 8020147
aoqi@0 4 * @summary Spurious errors when compiling nested stuck lambdas
aoqi@0 5 * @compile/fail/ref=T8020147.out -Werror -Xlint:cast -XDrawDiagnostics T8020147.java
aoqi@0 6 */
aoqi@0 7 class T8020147 {
aoqi@0 8 interface Function<X, Y> {
aoqi@0 9 Y apply(X x);
aoqi@0 10 }
aoqi@0 11
aoqi@0 12 <T> void g(Function<String, T> f) { }
aoqi@0 13 <U> String m(U u, Function<U, U> fuu) { return null; }
aoqi@0 14
aoqi@0 15 void test() {
aoqi@0 16 g(x->m("", i->(String)i));
aoqi@0 17 g(x->m("", i->(String)x));
aoqi@0 18 }
aoqi@0 19 }

mercurial