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

changeset 1802
8fb68f73d4b1
parent 1762
31ef33db5e0e
child 1817
3582b62dccb2
equal deleted inserted replaced
1801:775a51e3276f 1802:8fb68f73d4b1
247 } else { 247 } else {
248 ownerTypeAnnos.append(tc); 248 ownerTypeAnnos.append(tc);
249 } 249 }
250 } 250 }
251 if (lambdaTypeAnnos.nonEmpty()) { 251 if (lambdaTypeAnnos.nonEmpty()) {
252 owner.annotations.setTypeAttributes(ownerTypeAnnos.toList()); 252 owner.setTypeAttributes(ownerTypeAnnos.toList());
253 sym.annotations.setTypeAttributes(lambdaTypeAnnos.toList()); 253 sym.setTypeAttributes(lambdaTypeAnnos.toList());
254 } 254 }
255 } 255 }
256 256
257 //create the method declaration hoisting the lambda body 257 //create the method declaration hoisting the lambda body
258 JCMethodDecl lambdaDecl = make.MethodDef(make.Modifiers(sym.flags_field), 258 JCMethodDecl lambdaDecl = make.MethodDef(make.Modifiers(sym.flags_field),
387 } else { 387 } else {
388 LambdaTranslationContext lambdaContext = (LambdaTranslationContext) context; 388 LambdaTranslationContext lambdaContext = (LambdaTranslationContext) context;
389 if (lambdaContext.getSymbolMap(PARAM).containsKey(tree.sym)) { 389 if (lambdaContext.getSymbolMap(PARAM).containsKey(tree.sym)) {
390 Symbol translatedSym = lambdaContext.getSymbolMap(PARAM).get(tree.sym); 390 Symbol translatedSym = lambdaContext.getSymbolMap(PARAM).get(tree.sym);
391 result = make.Ident(translatedSym).setType(tree.type); 391 result = make.Ident(translatedSym).setType(tree.type);
392 translatedSym.annotations.setTypeAttributes(tree.sym.getRawTypeAttributes()); 392 translatedSym.setTypeAttributes(tree.sym.getRawTypeAttributes());
393 } else if (lambdaContext.getSymbolMap(LOCAL_VAR).containsKey(tree.sym)) { 393 } else if (lambdaContext.getSymbolMap(LOCAL_VAR).containsKey(tree.sym)) {
394 Symbol translatedSym = lambdaContext.getSymbolMap(LOCAL_VAR).get(tree.sym); 394 Symbol translatedSym = lambdaContext.getSymbolMap(LOCAL_VAR).get(tree.sym);
395 result = make.Ident(translatedSym).setType(tree.type); 395 result = make.Ident(translatedSym).setType(tree.type);
396 translatedSym.annotations.setTypeAttributes(tree.sym.getRawTypeAttributes()); 396 translatedSym.setTypeAttributes(tree.sym.getRawTypeAttributes());
397 } else if (lambdaContext.getSymbolMap(TYPE_VAR).containsKey(tree.sym)) { 397 } else if (lambdaContext.getSymbolMap(TYPE_VAR).containsKey(tree.sym)) {
398 Symbol translatedSym = lambdaContext.getSymbolMap(TYPE_VAR).get(tree.sym); 398 Symbol translatedSym = lambdaContext.getSymbolMap(TYPE_VAR).get(tree.sym);
399 result = make.Ident(translatedSym).setType(translatedSym.type); 399 result = make.Ident(translatedSym).setType(translatedSym.type);
400 translatedSym.annotations.setTypeAttributes(tree.sym.getRawTypeAttributes()); 400 translatedSym.setTypeAttributes(tree.sym.getRawTypeAttributes());
401 } else if (lambdaContext.getSymbolMap(CAPTURED_VAR).containsKey(tree.sym)) { 401 } else if (lambdaContext.getSymbolMap(CAPTURED_VAR).containsKey(tree.sym)) {
402 Symbol translatedSym = lambdaContext.getSymbolMap(CAPTURED_VAR).get(tree.sym); 402 Symbol translatedSym = lambdaContext.getSymbolMap(CAPTURED_VAR).get(tree.sym);
403 result = make.Ident(translatedSym).setType(tree.type); 403 result = make.Ident(translatedSym).setType(tree.type);
404 } else { 404 } else {
405 //access to untranslated symbols (i.e. compile-time constants, 405 //access to untranslated symbols (i.e. compile-time constants,
1713 break; 1713 break;
1714 default: 1714 default:
1715 ret = makeSyntheticVar(FINAL, name, types.erasure(sym.type), translatedSym); 1715 ret = makeSyntheticVar(FINAL, name, types.erasure(sym.type), translatedSym);
1716 } 1716 }
1717 if (ret != sym) { 1717 if (ret != sym) {
1718 ret.annotations.setDeclarationAttributes(sym.getRawAttributes()); 1718 ret.setDeclarationAttributes(sym.getRawAttributes());
1719 ret.annotations.setTypeAttributes(sym.getRawTypeAttributes()); 1719 ret.setTypeAttributes(sym.getRawTypeAttributes());
1720 } 1720 }
1721 return ret; 1721 return ret;
1722 } 1722 }
1723 1723
1724 void addSymbol(Symbol sym, LambdaSymbolKind skind) { 1724 void addSymbol(Symbol sym, LambdaSymbolKind skind) {

mercurial