436 |
436 |
437 @Override |
437 @Override |
438 public void visitVarDef(JCVariableDecl tree) { |
438 public void visitVarDef(JCVariableDecl tree) { |
439 LambdaTranslationContext lambdaContext = (LambdaTranslationContext)context; |
439 LambdaTranslationContext lambdaContext = (LambdaTranslationContext)context; |
440 if (context != null && lambdaContext.getSymbolMap(LOCAL_VAR).containsKey(tree.sym)) { |
440 if (context != null && lambdaContext.getSymbolMap(LOCAL_VAR).containsKey(tree.sym)) { |
441 JCExpression init = translate(tree.init); |
441 tree.init = translate(tree.init); |
442 int prevPos = make.pos; |
442 tree.sym = (VarSymbol) lambdaContext.getSymbolMap(LOCAL_VAR).get(tree.sym); |
443 try { |
443 result = tree; |
444 result = make.at(tree).VarDef((VarSymbol)lambdaContext.getSymbolMap(LOCAL_VAR).get(tree.sym), init); |
|
445 } finally { |
|
446 make.at(prevPos); |
|
447 } |
|
448 } else if (context != null && lambdaContext.getSymbolMap(TYPE_VAR).containsKey(tree.sym)) { |
444 } else if (context != null && lambdaContext.getSymbolMap(TYPE_VAR).containsKey(tree.sym)) { |
449 JCExpression init = translate(tree.init); |
445 JCExpression init = translate(tree.init); |
450 VarSymbol xsym = (VarSymbol)lambdaContext.getSymbolMap(TYPE_VAR).get(tree.sym); |
446 VarSymbol xsym = (VarSymbol)lambdaContext.getSymbolMap(TYPE_VAR).get(tree.sym); |
451 int prevPos = make.pos; |
447 int prevPos = make.pos; |
452 try { |
448 try { |
1893 return sym; |
1889 return sym; |
1894 } |
1890 } |
1895 }; |
1891 }; |
1896 break; |
1892 break; |
1897 case LOCAL_VAR: |
1893 case LOCAL_VAR: |
1898 ret = new VarSymbol(sym.flags() & FINAL, name, types.erasure(sym.type), translatedSym); |
1894 ret = new VarSymbol(sym.flags() & FINAL, name, sym.type, translatedSym); |
1899 ((VarSymbol) ret).pos = ((VarSymbol) sym).pos; |
1895 ((VarSymbol) ret).pos = ((VarSymbol) sym).pos; |
1900 break; |
1896 break; |
1901 case PARAM: |
1897 case PARAM: |
1902 ret = new VarSymbol((sym.flags() & FINAL) | PARAMETER, name, types.erasure(sym.type), translatedSym); |
1898 ret = new VarSymbol((sym.flags() & FINAL) | PARAMETER, name, types.erasure(sym.type), translatedSym); |
1903 ((VarSymbol) ret).pos = ((VarSymbol) sym).pos; |
1899 ((VarSymbol) ret).pos = ((VarSymbol) sym).pos; |