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

changeset 2380
b17805de5edf
parent 2358
6a6a8a9860a4
child 2381
d02e9b7444fe
equal deleted inserted replaced
2377:b5c2375893e2 2380:b17805de5edf
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;

mercurial