src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54846 e4049522b074
child 58679 9c3209ff7550
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Thu Oct 17 20:27:44 2019 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Thu Oct 17 20:53:35 2019 +0100
@@ -1093,7 +1093,7 @@
         MethodSymbol samSym = (MethodSymbol) types.findDescriptorSymbol(tree.target.tsym);
         List<LoadableConstant> staticArgs = List.of(
                 typeToMethodType(samSym.type),
-                ((MethodSymbol)refSym).asHandle(),
+                refSym.asHandle(),
                 typeToMethodType(tree.getDescriptorType(types)));
 
         //computed indy arg types
@@ -1709,8 +1709,9 @@
                         }
                         break;
                     case VARDEF:
-                        if (((JCVariableDecl)block.tree).sym == sym &&
-                                sym.owner.kind == MTH) { //only locals are captured
+                        if ((((JCVariableDecl)block.tree).sym == sym &&
+                                sym.owner.kind == MTH) || //only locals are captured
+                            (block.locals != null && block.locals.contains(sym))) {
                             return currentDepth > depth ? null : block.tree;
                         }
                         break;