src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java

changeset 2380
b17805de5edf
parent 2358
6a6a8a9860a4
child 2381
d02e9b7444fe
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Wed Apr 30 23:59:45 2014 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Thu May 01 11:35:02 2014 -0700
     1.3 @@ -438,13 +438,9 @@
     1.4      public void visitVarDef(JCVariableDecl tree) {
     1.5          LambdaTranslationContext lambdaContext = (LambdaTranslationContext)context;
     1.6          if (context != null && lambdaContext.getSymbolMap(LOCAL_VAR).containsKey(tree.sym)) {
     1.7 -            JCExpression init = translate(tree.init);
     1.8 -            int prevPos = make.pos;
     1.9 -            try {
    1.10 -                result = make.at(tree).VarDef((VarSymbol)lambdaContext.getSymbolMap(LOCAL_VAR).get(tree.sym), init);
    1.11 -            } finally {
    1.12 -                make.at(prevPos);
    1.13 -            }
    1.14 +            tree.init = translate(tree.init);
    1.15 +            tree.sym = (VarSymbol) lambdaContext.getSymbolMap(LOCAL_VAR).get(tree.sym);
    1.16 +            result = tree;
    1.17          } else if (context != null && lambdaContext.getSymbolMap(TYPE_VAR).containsKey(tree.sym)) {
    1.18              JCExpression init = translate(tree.init);
    1.19              VarSymbol xsym = (VarSymbol)lambdaContext.getSymbolMap(TYPE_VAR).get(tree.sym);
    1.20 @@ -1895,7 +1891,7 @@
    1.21                          };
    1.22                          break;
    1.23                      case LOCAL_VAR:
    1.24 -                        ret = new VarSymbol(sym.flags() & FINAL, name, types.erasure(sym.type), translatedSym);
    1.25 +                        ret = new VarSymbol(sym.flags() & FINAL, name, sym.type, translatedSym);
    1.26                          ((VarSymbol) ret).pos = ((VarSymbol) sym).pos;
    1.27                          break;
    1.28                      case PARAM:

mercurial