public void visitTypeArray(JCArrayTypeTree tree) { tree.elemtype = translate(tree.elemtype, null); tree.type = erasure(tree.type); result = tree; }
public void visitTypeIntersection(JCTypeIntersection tree) { tree.bounds = translate(tree.bounds, null); tree.type = erasure(tree.type); result = tree; }
public void visitConditional(JCConditional tree) { tree.cond = translate(tree.cond, syms.booleanType); tree.truepart = translate(tree.truepart, erasure(tree.type)); tree.falsepart = translate(tree.falsepart, erasure(tree.type)); tree.type = erasure(tree.type); result = retype(tree, tree.type, pt); }
public void visitSynchronized(JCSynchronized tree) { tree.lock = translate(tree.lock, erasure(tree.lock.type)); tree.body = translate(tree.body); result = tree; }
public void visitAssert(JCAssert tree) { tree.cond = translate(tree.cond, syms.booleanType); if (tree.detail != null) tree.detail = translate(tree.detail, erasure(tree.detail.type)); result = tree; }
public void visitNewArray(JCNewArray tree) { tree.elemtype = translate(tree.elemtype, null); translate(tree.dims, syms.intType); if (tree.type != null) { tree.elems = translate(tree.elems, erasure(types.elemtype(tree.type))); tree.type = erasure(tree.type); } else { tree.elems = translate(tree.elems, null); } result = tree; }
public void visitVarDef(JCVariableDecl tree) { tree.vartype = translate(tree.vartype, null); tree.init = translate(tree.init, tree.sym.erasure(types)); tree.type = erasure(tree.type); result = tree; }
public void visitSwitch(JCSwitch tree) { Type selsuper = types.supertype(tree.selector.type); boolean enumSwitch = selsuper != null && selsuper.tsym == syms.enumSym; Type target = enumSwitch ? erasure(tree.selector.type) : syms.intType; tree.selector = translate(tree.selector, target); tree.cases = translateCases(tree.cases); result = tree; }
public void visitVarDef(JCVariableDecl tree) { tree.vartype = translate(tree.vartype, null); tree.init = translate(tree.init, tree.sym.erasure(types)); tree.type = erasure(tree.type); result = tree; }
public void visitSwitch(JCSwitch tree) { Type selsuper = types.supertype(tree.selector.type); boolean enumSwitch = selsuper != null && selsuper.tsym == syms.enumSym; Type target = enumSwitch ? erasure(tree.selector.type) : syms.intType; tree.selector = translate(tree.selector, target); tree.cases = translateCases(tree.cases); result = tree; }
public void visitAssignop(JCAssignOp tree) { tree.lhs = translate(tree.lhs, null); tree.rhs = translate(tree.rhs, tree.operator.type.getParameterTypes().tail.head); tree.type = erasure(tree.type); result = tree; }
public void visitSwitch(JCSwitch tree) { Type selsuper = types.supertype(tree.selector.type); boolean enumSwitch = selsuper != null && selsuper.tsym == syms.enumSym; Type target = enumSwitch ? erasure(tree.selector.type) : syms.intType; tree.selector = translate(tree.selector, target); tree.cases = translateCases(tree.cases); result = tree; }
public void visitForeachLoop(JCEnhancedForLoop tree) { tree.var = translate(tree.var, null); Type iterableType = tree.expr.type; tree.expr = translate(tree.expr, erasure(tree.expr.type)); if (types.elemtype(tree.expr.type) == null) tree.expr.type = iterableType; // preserve type for Lower tree.body = translate(tree.body); result = tree; }
public void visitIndexed(JCArrayAccess tree) { tree.indexed = translate(tree.indexed, erasure(tree.indexed.type)); tree.index = translate(tree.index, syms.intType); // Insert casts of indexed expressions as needed. result = retype(tree, types.elemtype(tree.indexed.type), pt); }