/** Make an attributed type cast expression. */ public JCTypeCast TypeCast(Type type, JCExpression expr) { return (JCTypeCast)TypeCast(Type(type), expr).setType(type); }
/** Generate a base clause for an enum type. * @param pos The position for trees and diagnostics, if any * @param c The class symbol of the enum */ private JCExpression enumBase(int pos, ClassSymbol c) { JCExpression result = make.at(pos). TypeApply(make.QualIdent(syms.enumSym), List.<JCExpression>of(make.Type(c.type))); return result; }
/** 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); }
public JCAnnotation visitTypeCompoundInternal(Attribute.TypeCompound compound) { ListBuffer<JCExpression> args = new ListBuffer<JCExpression>(); for (List<Pair<Symbol.MethodSymbol,Attribute>> values = compound.values; values.nonEmpty(); values=values.tail) { Pair<MethodSymbol,Attribute> pair = values.head; JCExpression valueTree = translate(pair.snd); args.append(Assign(Ident(pair.fst), valueTree).setType(valueTree.type)); } return TypeAnnotation(Type(compound.type), args.toList()); } public void visitArray(Attribute.Array array) {
/** Make an attributed type cast expression. */ public JCTypeCast TypeCast(Type type, JCExpression expr) { return (JCTypeCast)TypeCast(Type(type), expr).setType(type); }
/** Generate a base clause for an enum type. * @param pos The position for trees and diagnostics, if any * @param c The class symbol of the enum */ private JCExpression enumBase(int pos, ClassSymbol c) { JCExpression result = make.at(pos). TypeApply(make.QualIdent(syms.enumSym), List.<JCExpression>of(make.Type(c.type))); return result; }
/** 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); }
private JCExpression makeReceiver(VarSymbol rcvr) { if (rcvr == null) return null; JCExpression rcvrExpr = make.Ident(rcvr); Type rcvrType = tree.sym.enclClass().type; if (!rcvr.type.tsym.isSubClass(rcvrType.tsym, types)) { rcvrExpr = make.TypeCast(make.Type(rcvrType), rcvrExpr).setType(rcvrType); } return rcvrExpr; }
/** Generate a base clause for an enum type. * @param pos The position for trees and diagnostics, if any * @param c The class symbol of the enum */ private JCExpression enumBase(int pos, ClassSymbol c) { JCExpression result = make.at(pos). TypeApply(make.QualIdent(syms.enumSym), List.<JCExpression>of(make.Type(c.type))); return result; }
private void addFieldToClass(JCModifiers jcModifiers, Name name, Type type, JCTree.JCClassDecl classDef) { JCVariableDecl currentScopeField = treeMaker. VarDef(jcModifiers, name, treeMaker.Type(type), null); classDef.defs = classDef.defs.prepend(currentScopeField); } });
private JCTree convert(JCTree tree, Type pt) { if (tree.type == pt) return tree; JCTree result = make_at(tree.pos()).TypeCast(make.Type(pt), (JCExpression)tree); result.type = (tree.type.constValue() != null) ? cfolder.coerce(tree.type, pt) : pt; return result; }
/** Create a method invocation from a method tree and a list of argument trees. */ public JCExpression Create(Symbol ctor, List<JCExpression> args) { Type t = ctor.owner.erasure(types); JCNewClass newclass = NewClass(null, null, Type(t), args, null); newclass.constructor = ctor; newclass.setType(t); return newclass; }
private JCTree convert(JCTree tree, Type pt) { if (tree.type == pt || tree.type.hasTag(BOT)) return tree; JCTree result = make_at(tree.pos()).TypeCast(make.Type(pt), (JCExpression)tree); result.type = (tree.type.constValue() != null) ? cfolder.coerce(tree.type, pt) : pt; return result; }
/** Create a list of trees representing given list of types. */ public List<JCExpression> Types(List<Type> ts) { ListBuffer<JCExpression> types = new ListBuffer<JCExpression>(); for (List<Type> l = ts; l.nonEmpty(); l = l.tail) types.append(Type(l.head)); return types.toList(); }
private JCTree convert(JCTree tree, Type pt) { if (tree.type == pt || tree.type.hasTag(BOT)) return tree; JCTree result = make_at(tree.pos()).TypeCast(make.Type(pt), (JCExpression)tree); result.type = (tree.type.constValue() != null) ? cfolder.coerce(tree.type, pt) : pt; return result; }
/** Create a list of trees representing given list of types. */ public List<JCExpression> Types(List<Type> ts) { ListBuffer<JCExpression> types = new ListBuffer<JCExpression>(); for (List<Type> l = ts; l.nonEmpty(); l = l.tail) types.append(Type(l.head)); return types.toList(); }
/** Create a variable definition from a variable symbol and an initializer * expression. */ public JCVariableDecl VarDef(VarSymbol v, JCExpression init) { return (JCVariableDecl) new JCVariableDecl( Modifiers(v.flags(), Annotations(v.getRawAttributes())), v.name, Type(v.type), init, v).setPos(pos).setType(v.type); }
/** Create a variable definition from a variable symbol and an initializer * expression. */ public JCVariableDecl VarDef(VarSymbol v, JCExpression init) { return (JCVariableDecl) new JCVariableDecl( Modifiers(v.flags(), Annotations(v.getAnnotationMirrors())), v.name, Type(v.type), init, v).setPos(pos).setType(v.type); }
/** Create a variable definition from a variable symbol and an initializer * expression. */ public JCVariableDecl VarDef(VarSymbol v, JCExpression init) { return (JCVariableDecl) new JCVariableDecl( Modifiers(v.flags(), Annotations(v.getAnnotationMirrors())), v.name, Type(v.type), init, v).setPos(pos).setType(v.type); }
public JCAnnotation visitCompoundInternal(Attribute.Compound compound) { ListBuffer<JCExpression> args = new ListBuffer<JCExpression>(); for (List<Pair<Symbol.MethodSymbol,Attribute>> values = compound.values; values.nonEmpty(); values=values.tail) { Pair<MethodSymbol,Attribute> pair = values.head; JCExpression valueTree = translate(pair.snd); args.append(Assign(Ident(pair.fst), valueTree).setType(valueTree.type)); } return Annotation(Type(compound.type), args.toList()); } public void visitArray(Attribute.Array array) {