public void visitCastExpression(CastExpression expression) { expression.getExpression().visit(this); }
public void visitCastExpression(final CastExpression expression) { assertExpressionAuthorized(expression); expression.getExpression().visit(this); }
protected String getMethodName(Expression message) { String methodName = null; if (message instanceof CastExpression) { CastExpression msg = (CastExpression) message; if (msg.getType() == ClassHelper.STRING_TYPE) { final Expression methodExpr = msg.getExpression(); if (methodExpr instanceof ConstantExpression) methodName = methodExpr.getText(); } } if (methodName == null && message instanceof ConstantExpression) { ConstantExpression constantExpression = (ConstantExpression) message; methodName = constantExpression.getText(); } return methodName; }
@Override public void visitCastExpression(CastExpression expr) { result = new ExpressionInfo( TextRegion.of(expr), TextPosition.startOf(expr), "as", convert(expr.getExpression()) ).setRelevant(false); }
@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); }
@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); }
private void addArg(Expression arg) { if (arg instanceof NotExpression) { NotExpression not = (NotExpression)arg; addArg(not.getExpression()); call(InteractionBuilder.NEGATE_LAST_ARG); return; } if (arg instanceof CastExpression) { CastExpression cast = (CastExpression)arg; addArg(cast.getExpression()); call(InteractionBuilder.TYPE_LAST_ARG, new ClassExpression(cast.getType())); return; } if (arg instanceof ClosureExpression) { call(InteractionBuilder.ADD_CODE_ARG, arg); return; } call(InteractionBuilder.ADD_EQUAL_ARG, arg); }
private static Expression transformConstantExpression(Expression val, ClassNode returnType) { ClassNode returnWrapperType = ClassHelper.getWrapper(returnType); if (val instanceof ConstantExpression) { Expression result = revertType(val, returnWrapperType); if (result != null) { return result; } return val; } if (val instanceof CastExpression) { CastExpression castExp = (CastExpression) val; Expression castee = castExp.getExpression(); if (castee instanceof ConstantExpression) { if (ClassHelper.getWrapper(castee.getType()).isDerivedFrom(returnWrapperType)) { return castee; } Expression result = revertType(castee, returnWrapperType); if (result != null) { return result; } return castee; } } return transformInlineConstants(val, returnType); }
@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()); ClassNode castType = cast.getType(); Expression expression = cast.getExpression(); if (expression instanceof ConstantExpression) { ConstantExpression ce = (ConstantExpression) expression;
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); } } } }
argument = ((CastExpression) argument).getExpression();
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(final CastExpression expression) { assertExpressionAuthorized(expression); expression.getExpression().visit(this); }
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 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); } }
@Override public void run() { loc(exp); visit(exp.getExpression()); literal(exp.getType()); literal(exp.isIgnoringAutoboxing()); literal(exp.isStrict()); } });
@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); }