Thu, 26 Mar 2015 11:34:50 +0100
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 8034223 |
aoqi@0 | 4 | * @summary Most-specific testing with inference variables in function parameter types |
aoqi@0 | 5 | * @compile/fail/ref=MostSpecific13.out -XDrawDiagnostics MostSpecific13.java |
aoqi@0 | 6 | */ |
aoqi@0 | 7 | class MostSpecific13 { |
aoqi@0 | 8 | |
aoqi@0 | 9 | interface UnaryOp<T> { T apply(T arg); } |
aoqi@0 | 10 | interface IntegerToNumber { Number apply(Integer arg); } |
aoqi@0 | 11 | |
aoqi@0 | 12 | <T> void m(UnaryOp<T> f) {} |
aoqi@0 | 13 | void m(IntegerToNumber f) {} |
aoqi@0 | 14 | |
aoqi@0 | 15 | void test() { |
aoqi@0 | 16 | m((Integer i) -> i); // error |
aoqi@0 | 17 | m(this::id); // error |
aoqi@0 | 18 | } |
aoqi@0 | 19 | |
aoqi@0 | 20 | Integer id(Integer arg) { return arg; } |
aoqi@0 | 21 | } |