test/tools/javac/lambda/EffectivelyFinalThrows.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

     1 /*
     2  * @test /nodynamiccopyright/
     3  * @bug 8019521
     4  * @summary Check that enhanced rethrow/effectivelly final works correctly inside lambdas
     5  * @compile EffectivelyFinalThrows.java
     6  */
     8 class EffectivelyFinalThrows {
     9     interface SAM<E extends Throwable> {
    10         public void t() throws E;
    11     }
    12     <E extends Throwable> void test(SAM<E> s) throws E {
    13         s.t();
    14     }
    15     void test2(SAM<Checked> s) throws Checked {
    16         test(() -> {
    17             try {
    18                 s.t();
    19             } catch (Throwable t) {
    20                 throw t;
    21             }
    22         });
    23     }
    24     static class Checked extends Exception {}
    25 }

mercurial