@Override public void visitCastExpression(CastExpression expr) { CastExpression conversion = new CastExpression( expr.getType(), convert(expr.getExpression()), expr.isIgnoringAutoboxing()); conversion.setSourcePosition(expr); conversion.setCoerce(expr.isCoerce()); result = record(conversion); }
public Expression transformExpression(ExpressionTransformer transformer) { CastExpression ret = new CastExpression(getType(), transformer.transform(expression)); ret.setSourcePosition(this); ret.setCoerce(this.isCoerce()); ret.setStrict(this.isStrict()); ret.copyNodeMetaData(this); return ret; }
@Override public void visitCastExpression(CastExpression expr) { CastExpression result = new CastExpression( expr.getType(), replaceExpr(expr.getExpression()), expr.isIgnoringAutoboxing() ); result.setCoerce(expr.isCoerce()); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }
@Override public void visitCastExpression(final CastExpression expression) { super.visitCastExpression(expression); if (!expression.isCoerce()) { ClassNode targetType = expression.getType(); Expression source = expression.getExpression(); ClassNode expressionType = getType(source); if (!checkCast(targetType, source) && !isDelegateOrOwnerInClosure(source)) { addStaticTypeError("Inconvertible types: cannot cast " + expressionType.toString(false) + " to " + targetType.toString(false), expression); } } storeType(expression, expression.getType()); }
public Expression transformCastExpression(final CastExpression cast) { if (cast.isCoerce()) { Expression expression = cast.getExpression(); ClassNode exprInferredType = transformer.getTypeChooser().resolveType(expression, transformer.getClassNode());
public void visitCastExpression(CastExpression castExpression) { ClassNode type = castExpression.getType(); Expression subExpression = castExpression.getExpression(); subExpression.visit(this); if (ClassHelper.OBJECT_TYPE.equals(type)) return; if (castExpression.isCoerce()) { controller.getOperandStack().doAsType(type); } else { if (isNullConstant(subExpression) && !ClassHelper.isPrimitiveType(type)) { controller.getOperandStack().replace(type); } else { ClassNode subExprType = controller.getTypeChooser().resolveType(subExpression, controller.getClassNode()); if (castExpression.isStrict() || (!ClassHelper.isPrimitiveType(type) && WideningCategories.implementsInterfaceOrSubclassOf(subExprType, type))) { BytecodeHelper.doCast(controller.getMethodVisitor(), type); controller.getOperandStack().replace(type); } else { controller.getOperandStack().doGroovyCast(type); } } } }
@Override public void visitCastExpression(final CastExpression exp) { if (exp.isCoerce()) { makeNode("sandboxCast", new Runnable() { @Override public void run() { loc(exp); visit(exp.getExpression()); literal(exp.getType()); literal(exp.isIgnoringAutoboxing()); literal(exp.isStrict()); } }); } else { super.visitCastExpression(exp); } }
public Expression transformExpression(ExpressionTransformer transformer) { CastExpression ret = new CastExpression(getType(), transformer.transform(expression)); ret.setSourcePosition(this); ret.setCoerce(this.isCoerce()); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { CastExpression ret = new CastExpression(getType(), transformer.transform(expression)); ret.setSourcePosition(this); ret.setCoerce(this.isCoerce()); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { CastExpression ret = new CastExpression(getType(), transformer.transform(expression)); ret.setSourcePosition(this); ret.setCoerce(this.isCoerce()); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { CastExpression ret = new CastExpression(getType(), transformer.transform(expression)); ret.setSourcePosition(this); ret.setCoerce(this.isCoerce()); return ret; }
@Override public void run() { loc(exp); visit(exp.getExpression()); literal(exp.getType()); literal(exp.isCoerce()); // TODO what about ignoreAutoboxing & strict? } });
public void visitCastExpression(CastExpression castExpression) { ClassNode type = castExpression.getType(); castExpression.getExpression().visit(this); if (castExpression.isCoerce()) { controller.getOperandStack().doAsType(type); } else { controller.getOperandStack().doGroovyCast(type); } }
public void visitCastExpression(CastExpression expression) { ClassNode type = expression.getType(); visitAndAutoboxBoolean(expression.getExpression()); final ClassNode rht = rightHandType; rightHandType = expression.getExpression().getType(); doConvertAndCast(type, expression.getExpression(), expression.isIgnoringAutoboxing(), false, expression.isCoerce()); rightHandType = rht; }
public void visitCastExpression(CastExpression castExpression) { ClassNode type = castExpression.getType(); visitAndAutoboxBoolean(castExpression.getExpression()); final ClassNode rht = rightHandType; rightHandType = castExpression.getExpression().getType(); doConvertAndCast(type, castExpression.getExpression(), castExpression.isIgnoringAutoboxing(), false, castExpression.isCoerce()); rightHandType = rht; }
public void visitCastExpression(CastExpression castExpression) { ClassNode type = castExpression.getType(); visitAndAutoboxBoolean(castExpression.getExpression()); final ClassNode rht = rightHandType; rightHandType = castExpression.getExpression().getType(); doConvertAndCast(type, castExpression.getExpression(), castExpression.isIgnoringAutoboxing(), false, castExpression.isCoerce()); rightHandType = rht; }
@Override public void visitCastExpression(CastExpression expr) { CastExpression result = new CastExpression( expr.getType(), replaceExpr(expr.getExpression()), expr.isIgnoringAutoboxing() ); result.setCoerce(expr.isCoerce()); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }
transform(ce.getExpression()), boolExp(ce.isIgnoringAutoboxing()), boolExp(ce.isCoerce()), boolExp(ce.isStrict()) );