/** Make an attributed unary expression. * @param optag The operators tree tag. * @param arg The operator's argument. */ JCUnary makeUnary(JCTree.Tag optag, JCExpression arg) { JCUnary tree = make.Unary(optag, arg); tree.operator = rs.resolveUnaryOperator( make_pos, optag, attrEnv, arg.type); tree.type = tree.operator.type.getReturnType(); return tree; }
/** Make an attributed unary expression. * @param optag The operators tree tag. * @param arg The operator's argument. */ JCUnary makeUnary(int optag, JCExpression arg) { JCUnary tree = make.Unary(optag, arg); tree.operator = rs.resolveUnaryOperator( make_pos, optag, attrEnv, arg.type); tree.type = tree.operator.type.getReturnType(); return tree; }
/** Make an attributed unary expression. * @param optag The operators tree tag. * @param arg The operator's argument. */ JCUnary makeUnary(JCTree.Tag optag, JCExpression arg) { JCUnary tree = make.Unary(optag, arg); tree.operator = rs.resolveUnaryOperator( make_pos, optag, attrEnv, arg.type); tree.type = tree.operator.type.getReturnType(); return tree; }
/** Make an attributed unary expression. * @param optag The operators tree tag. * @param arg The operator's argument. */ JCUnary makeUnary(int optag, JCExpression arg) { JCUnary tree = make.Unary(optag, arg); tree.operator = rs.resolveUnaryOperator( make_pos, optag, attrEnv, arg.type); tree.type = tree.operator.type.getReturnType(); return tree; }
rs.resolveUnaryOperator(tree.pos(), tree.tag, env, argtype);
rs.resolveUnaryOperator(tree.pos(), tree.getTag(), env, argtype);
public void visitUnary(JCUnary tree) { // Attribute arguments. Type argtype = (tree.getTag().isIncOrDecUnaryOp()) ? attribTree(tree.arg, env, varInfo) : chk.checkNonVoid(tree.arg.pos(), attribExpr(tree.arg, env)); // Find operator. Symbol operator = tree.operator = rs.resolveUnaryOperator(tree.pos(), tree.getTag(), env, argtype); Type owntype = types.createErrorType(tree.type); if (operator.kind == MTH && !argtype.isErroneous()) { owntype = (tree.getTag().isIncOrDecUnaryOp()) ? tree.arg.type : operator.type.getReturnType(); int opc = ((OperatorSymbol)operator).opcode; // If the argument is constant, fold it. if (argtype.constValue() != null) { Type ctype = cfolder.fold1(opc, argtype); if (ctype != null) { owntype = cfolder.coerce(ctype, owntype); } } } result = check(tree, owntype, VAL, resultInfo); }
rs.resolveUnaryOperator(tree.pos(), tree.getTag(), env, argtype);