private KlassInfo(JCClassDecl clazz) { this.clazz = clazz; appendedMethodList = new ListBuffer<>(); deserializeCases = new HashMap<String, ListBuffer<JCStatement>>(); MethodType type = new MethodType(List.of(syms.serializedLambdaType), syms.objectType, List.<Type>nil(), syms.methodClass); deserMethodSym = makePrivateSyntheticMethod(STATIC, names.deserializeLambda, type, clazz.sym); deserParamSym = new VarSymbol(FINAL, names.fromString("lambda"), syms.serializedLambdaType, deserMethodSym); }
private VarSymbol addEnumNameField(JCClassDecl cdef) { VarSymbol name = new VarSymbol(PRIVATE|FINAL|SYNTHETIC, names.fromString("$name"), syms.stringType, cdef.sym); cdef.sym.members().enter(name); cdef.defs = cdef.defs.prepend(make.VarDef(name, null)); return name; }
/** Create a value parameter tree from its name, type, and owner. */ public JCVariableDecl Param(Name name, Type argtype, Symbol owner) { return VarDef(new VarSymbol(PARAMETER, name, argtype, owner), null); }
/** Read a field. */ VarSymbol readField() { long flags = adjustFieldFlags(nextChar()); Name name = readName(nextChar()); Type type = readType(nextChar()); VarSymbol v = new VarSymbol(flags, name, type, currentOwner); readMemberAttrs(v); return v; }
private VarSymbol makeOuterThisVarSymbol(Symbol owner, long flags) { if (owner.kind == TYP && target.usePrivateSyntheticFields()) flags |= PRIVATE; Type target = types.erasure(owner.enclClass().type.getEnclosingType()); VarSymbol outerThis = new VarSymbol(flags, outerThisName(target, owner), target, owner); outerThisStack = outerThisStack.prepend(outerThis); return outerThis; }
/** Create a tree representing `this', given its type. */ public JCExpression This(Type t) { return Ident(new VarSymbol(FINAL, names._this, t, t.tsym)); }
/** Read a field. */ VarSymbol readField() { long flags = adjustFieldFlags(nextChar()); Name name = readName(nextChar()); Type type = readType(nextChar()); VarSymbol v = new VarSymbol(flags, name, type, currentOwner); readMemberAttrs(v); return v; }
/** Create a value parameter tree from its name, type, and owner. */ public JCVariableDecl Param(Name name, Type argtype, Symbol owner) { return VarDef(new VarSymbol(0, name, argtype, owner), null); }
/** Clone this symbol with new owner. */ public VarSymbol clone(Symbol newOwner) { VarSymbol v = new VarSymbol(flags_field, name, type, newOwner); v.pos = pos; v.adr = adr; v.data = data; // System.out.println("clone " + v + " in " + newOwner);//DEBUG return v; }
private VarSymbol addEnumNameField(JCClassDecl cdef) { VarSymbol name = new VarSymbol(PRIVATE|FINAL|SYNTHETIC, names.fromString("$name"), syms.stringType, cdef.sym); cdef.sym.members().enter(name); cdef.defs = cdef.defs.prepend(make.VarDef(name, null)); return name; }
/** Create a tree representing a class literal. */ public JCExpression ClassLiteral(Type t) { VarSymbol lit = new VarSymbol(STATIC | PUBLIC | FINAL, names._class, t, t.tsym); return Select(Type(t), lit); }
/** Create a tree representing `this', given its type. */ public JCExpression This(Type t) { return Ident(new VarSymbol(FINAL, names._this, t, t.tsym)); }
/** Clone this symbol with new owner. */ public VarSymbol clone(Symbol newOwner) { VarSymbol v = new VarSymbol(flags_field, name, type, newOwner); v.pos = pos; v.adr = adr; v.data = data; // System.out.println("clone " + v + " in " + newOwner);//DEBUG return v; }
@Override public void visitVarDef(JCVariableDecl that) { initTypeIfNeeded(that); if (that.sym == null) { that.sym = new VarSymbol(0, that.name, that.type, syms.noSymbol); that.sym.adr = 0; } super.visitVarDef(that); }
/** Create a tree representing `super', given its type and owner. */ public JCIdent Super(Type t, TypeSymbol owner) { return Ident(new VarSymbol(FINAL, names._super, t, owner)); }
private VarSymbol addParameter(String name, Type p, boolean genArg) { VarSymbol vsym = new VarSymbol(0, names.fromString(name), p, localContext.bridgeSym); params.append(make.VarDef(vsym, null)); if (genArg) { args.append(make.Ident(vsym)); } return vsym; } }
/** Create a tree representing a class literal. */ public JCExpression ClassLiteral(Type t) { VarSymbol lit = new VarSymbol(STATIC | PUBLIC | FINAL, names._class, t, t.tsym); return Select(Type(t), lit); }
/** Create a tempory variable. * @param type The variable's type. */ LocalItem makeTemp(Type type) { VarSymbol v = new VarSymbol(Flags.SYNTHETIC, names.empty, type, env.enclMethod.sym); code.newLocal(v); return items.makeLocalItem(v); }
/** Create a tempory variable. * @param type The variable's type. */ LocalItem makeTemp(Type type) { VarSymbol v = new VarSymbol(Flags.SYNTHETIC, names.empty, type, env.enclMethod.sym); code.newLocal(v); return items.makeLocalItem(v); }
/** Create a tree representing `super', given its type and owner. */ public JCIdent Super(Type t, TypeSymbol owner) { return Ident(new VarSymbol(FINAL, names._super, t, owner)); }