JCTree translate(JCIdent lambdaIdent) { for (Map<Symbol, Symbol> m : translatedSymbols.values()) { if (m.containsKey(lambdaIdent.sym)) { Symbol tSym = m.get(lambdaIdent.sym); JCTree t = make.Ident(tSym).setType(lambdaIdent.type); tSym.setTypeAttributes(lambdaIdent.sym.getRawTypeAttributes()); return t; } } return null; }
public JCTree translate(JCFieldAccess fieldAccess) { Assert.check(fieldAccess.name == names._this); Map<Symbol, Symbol> m = translatedSymbols.get(LambdaSymbolKind.CAPTURED_OUTER_THIS); if (m.containsKey(fieldAccess.sym.owner)) { Symbol tSym = m.get(fieldAccess.sym.owner); JCExpression t = make.Ident(tSym).setType(fieldAccess.sym.owner.type); tSym.setTypeAttributes(fieldAccess.sym.owner.getRawTypeAttributes()); return t; } return null; }
JCTree translate(JCIdent lambdaIdent) { for (LambdaSymbolKind kind : LambdaSymbolKind.values()) { Map<Symbol, Symbol> m = getSymbolMap(kind); switch(kind) { default: if (m.containsKey(lambdaIdent.sym)) { Symbol tSym = m.get(lambdaIdent.sym); JCTree t = make.Ident(tSym).setType(lambdaIdent.type); tSym.setTypeAttributes(lambdaIdent.sym.getRawTypeAttributes()); return t; } break; case CAPTURED_OUTER_THIS: if (lambdaIdent.sym.owner.kind == TYP && m.containsKey(lambdaIdent.sym.owner)) { // Transform outer instance variable references anchoring them to the captured synthetic. Symbol tSym = m.get(lambdaIdent.sym.owner); JCExpression t = make.Ident(tSym).setType(lambdaIdent.sym.owner.type); tSym.setTypeAttributes(lambdaIdent.sym.owner.getRawTypeAttributes()); t = make.Select(t, lambdaIdent.name); t.setType(lambdaIdent.type); TreeInfo.setSymbol(t, lambdaIdent.sym); return t; } break; } } return null; }
JCTree captured_local = make.Ident(fv).setType(fv.type); syntheticInits.append((JCExpression) captured_local);
JCTree captured_local = make.Ident(fv).setType(fv.type); syntheticInits.append((JCExpression) captured_local);
if (resource instanceof JCVariableDecl) { JCVariableDecl var = (JCVariableDecl) resource; expr = make.Ident(var.sym).setType(resource.type); stats.add(var); } else {
if (resource instanceof JCVariableDecl) { JCVariableDecl var = (JCVariableDecl) resource; expr = make.Ident(var.sym).setType(resource.type); stats.add(var); } else {
flow = Flow.instance(context); names = Names.instance(context); stuckTree = make.Ident(names.empty).setType(Type.stuckType); typeEnvs = TypeEnvs.instance(context); emptyDeferredAttrContext =
protected DeferredAttr(Context context) { context.put(deferredAttrKey, this); attr = Attr.instance(context); chk = Check.instance(context); diags = JCDiagnostic.Factory.instance(context); enter = Enter.instance(context); infer = Infer.instance(context); rs = Resolve.instance(context); log = Log.instance(context); syms = Symtab.instance(context); make = TreeMaker.instance(context); types = Types.instance(context); Names names = Names.instance(context); stuckTree = make.Ident(names.empty).setType(Type.stuckType); emptyDeferredAttrContext = new DeferredAttrContext(AttrMode.CHECK, null, MethodResolutionPhase.BOX, infer.emptyContext, null, null) { @Override void addDeferredAttrNode(DeferredType dt, ResultInfo ri, DeferredStuckPolicy deferredStuckPolicy) { Assert.error("Empty deferred context!"); } @Override void complete() { Assert.error("Empty deferred context!"); } }; }
private JCExpression deserGetter(String func, Type type, List<Type> argTypes, List<JCExpression> args) { MethodType getmt = new MethodType(argTypes, type, List.<Type>nil(), syms.methodClass); Symbol getsym = rs.resolveQualifiedMethod(null, attrEnv, syms.serializedLambdaType, names.fromString(func), argTypes, List.<Type>nil()); return make.Apply( List.<JCExpression>nil(), make.Select(make.Ident(kInfo.deserParamSym).setType(syms.serializedLambdaType), getsym).setType(getmt), args).setType(type); }
public ExpressionTree QualIdent(Element element) { Symbol s = (Symbol) element; if (s.owner != null && (s.owner.kind == Kinds.Kind.MTH || s.owner.name.isEmpty())) { JCIdent result = make.at(NOPOS).Ident(s); result.setType(s.type); return result; } QualIdentTree result = new QualIdentTree(make.at(NOPOS).QualIdent(s.owner), s.name, s); result.setPos(make.pos).setType(s.type); return result; }
private JCExpression deserGetter(String func, Type type, List<Type> argTypes, List<JCExpression> args) { MethodType getmt = new MethodType(argTypes, type, List.<Type>nil(), syms.methodClass); Symbol getsym = rs.resolveQualifiedMethod(null, attrEnv, syms.serializedLambdaType, names.fromString(func), argTypes, List.<Type>nil()); return make.Apply( List.<JCExpression>nil(), make.Select(make.Ident(kInfo.deserParamSym).setType(syms.serializedLambdaType), getsym).setType(getmt), args).setType(type); }