src/share/classes/com/sun/tools/javac/jvm/Code.java

changeset 2734
ba758e1ffa69
parent 2709
dca7f60e618d
child 2893
ca5783d9a597
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/Code.java	Tue Jan 13 10:25:24 2015 +0100
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/Code.java	Thu Mar 26 11:34:50 2015 +0100
     1.3 @@ -2172,7 +2172,11 @@
     1.4          boolean keepLocalVariables = varDebugInfo ||
     1.5              (var.sym.isExceptionParameter() && var.sym.hasTypeAnnotations());
     1.6          if (!keepLocalVariables) return;
     1.7 -        if ((var.sym.flags() & Flags.SYNTHETIC) != 0) return;
     1.8 +        //don't keep synthetic vars, unless they are lambda method parameters
     1.9 +        boolean ignoredSyntheticVar = (var.sym.flags() & Flags.SYNTHETIC) != 0 &&
    1.10 +                ((var.sym.owner.flags() & Flags.LAMBDA_METHOD) == 0 ||
    1.11 +                 (var.sym.flags() & Flags.PARAMETER) == 0);
    1.12 +        if (ignoredSyntheticVar) return;
    1.13          if (varBuffer == null)
    1.14              varBuffer = new LocalVar[20];
    1.15          else

mercurial