public static CastExpression castX(ClassNode type, Expression expression, boolean ignoreAutoboxing) { return new CastExpression(type, expression, ignoreAutoboxing); }
public static CastExpression castX(ClassNode type, Expression expression) { return new CastExpression(type, expression); }
public static CastExpression asExpression(ClassNode type, Expression expression) { CastExpression answer = new CastExpression(type, expression); answer.setCoerce(true); return answer; }
private Expression createFieldHelperReceiver() { return ClassHelper.CLASS_Type.equals(weaved.getOriginType()) ? weaved : new CastExpression(fieldHelper, weaved); }
public void pushDynamicName(Expression name) { if (name instanceof ConstantExpression) { ConstantExpression ce = (ConstantExpression) name; Object value = ce.getValue(); if (value instanceof String) { pushConstant(ce); return; } } new CastExpression(ClassHelper.STRING_TYPE, name).visit(controller.getAcg()); }
private int addExpression(Parameter[] newParams, ArgumentListExpression arguments, int index, Parameter parameter) { newParams[index++] = parameter; arguments.addExpression( new CastExpression( parameter.getType(), new VariableExpression(parameter.getName()) ) ); return index; }
protected Expression castExpression(AST castNode) { AST node = castNode.getFirstChild(); ClassNode type = makeTypeWithArguments(node); assertTypeNotNull(type, node); AST expressionNode = node.getNextSibling(); Expression expression = expression(expressionNode); CastExpression castExpression = new CastExpression(type, expression); configureAST(castExpression, castNode); return castExpression; }
@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); }
public void fallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, String name, MethodCallerMultiAdapter adapter) { if (controller.getCompileStack().isLHS()) controller.getOperandStack().box(); controller.getInvocationWriter().makeCall( expression, objectExpression, // receiver new CastExpression(ClassHelper.STRING_TYPE, expression.getProperty()), // messageName MethodCallExpression.NO_ARGUMENTS, adapter, expression.isSafe(), expression.isSpreadSafe(), expression.isImplicitThis() ); } }
paramValues.add(i); paramValues.add( new CastExpression( parameter.getType(), parameter.getInitialExpression() if (k > counter - j && parameter.hasInitialExpression()) { arguments.addExpression( new CastExpression( parameter.getType(), parameter.getInitialExpression()
private static Statement createSuperFallback(MethodNode forwarderMethod, ClassNode returnType) { ArgumentListExpression args = new ArgumentListExpression(); Parameter[] forwarderMethodParameters = forwarderMethod.getParameters(); for (final Parameter forwarderMethodParameter : forwarderMethodParameters) { args.addExpression(new VariableExpression(forwarderMethodParameter)); } BinaryExpression instanceOfExpr = new BinaryExpression(new VariableExpression("this"), Token.newSymbol(Types.KEYWORD_INSTANCEOF, -1, -1), new ClassExpression(Traits.GENERATED_PROXY_CLASSNODE)); MethodCallExpression superCall = new MethodCallExpression( new VariableExpression("super"), forwarderMethod.getName(), args ); superCall.setImplicitThis(false); CastExpression proxyReceiver = new CastExpression(Traits.GENERATED_PROXY_CLASSNODE, new VariableExpression("this")); MethodCallExpression getProxy = new MethodCallExpression(proxyReceiver, "getProxyTarget", ArgumentListExpression.EMPTY_ARGUMENTS); getProxy.setImplicitThis(true); StaticMethodCallExpression proxyCall = new StaticMethodCallExpression( ClassHelper.make(InvokerHelper.class), "invokeMethod", new ArgumentListExpression(getProxy, new ConstantExpression(forwarderMethod.getName()), new ArrayExpression(ClassHelper.OBJECT_TYPE, args.getExpressions())) ); IfStatement stmt = new IfStatement( new BooleanExpression(instanceOfExpr), new ExpressionStatement(new CastExpression(returnType,proxyCall)), new ExpressionStatement(superCall) ); return stmt; }
CastExpression trn = new CastExpression(castType, transformer.transform(expression)); trn.setSourcePosition(cast); trn.copyNodeMetaData(cast);
private void makeInvokeMethodCall(MethodCallExpression call, boolean useSuper, MethodCallerMultiAdapter adapter) { // receiver // we operate on GroovyObject if possible Expression objectExpression = call.getObjectExpression(); // message name Expression messageName = new CastExpression(ClassHelper.STRING_TYPE, call.getMethod()); if (useSuper) { ClassNode classNode = controller.isInClosure() ? controller.getOutermostClass() : controller.getClassNode(); // GROOVY-4035 ClassNode superClass = classNode.getSuperClass(); makeCall(call, new ClassExpression(superClass), objectExpression, messageName, call.getArguments(), adapter, call.isSafe(), call.isSpreadSafe(), false ); } else { makeCall(call, objectExpression, messageName, call.getArguments(), adapter, call.isSafe(), call.isSpreadSafe(), call.isImplicitThis() ); } }
ClassNode fixedReturnType = correctToGenericsSpecRecurse(genericsSpec, helperMethod.getReturnType()); boolean noCastRequired = genericsSpec.isEmpty() || fixedReturnType.getName().equals(ClassHelper.VOID_TYPE.getName()); Expression forwardExpression = noCastRequired ? mce : new CastExpression(fixedReturnType,mce); int access = helperMethod.getModifiers();
final CastExpression ce = new CastExpression(left.getType(), me); ce.setCoerce(true); ce.setSourcePosition(be); CastExpression ce = new CastExpression(left.getType(), right); ce.setCoerce(true); ce.setSourcePosition(be); me.addMapEntryExpression((MapEntryExpression) transform(be.getRightExpression())); me.setSourcePosition(be.getRightExpression()); final CastExpression ce = new CastExpression(left.getType(), me); ce.setSourcePosition(be); return ce;
mce.setImplicitThis(true); mce.setMethodTarget(CLOSURE_GETTHISOBJECT_METHOD); pexp = new CastExpression(controller.getOutermostClass(),mce); } else { pexp = new PropertyExpression(
mce.setImplicitThis(true); mce.setMethodTarget(CLOSURE_GETTHISOBJECT_METHOD); pexp = new CastExpression(controller.getOutermostClass(),mce); } else { pexp = new PropertyExpression(
CastExpression castExpression = new CastExpression(GenericsUtils.nonGeneric(cNode), other); castExpression.setStrict(true); body.addStatement(declS(otherTyped, castExpression));