Package org.codehaus.groovy.ast.expr

Examples of org.codehaus.groovy.ast.expr.ArgumentListExpression


        if (index >= argTypes.length) return false;
        return matchWithOrWithourBoxing(argTypes[index], clazz);
    }

    public boolean argTypeMatches(MethodCall call, int index, Class clazz) {
        ArgumentListExpression argumentListExpression = InvocationWriter.makeArgumentList(call.getArguments());
        ClassNode[] argumentTypes = typeCheckingVisitor.getArgumentTypes(argumentListExpression);
        return argTypeMatches(argumentTypes, index, clazz);
    }
View Full Code Here


        TypeChooser typeChooser = controller.getTypeChooser();
        Expression collectionExpression = loop.getCollectionExpression();
        ClassNode collectionType = typeChooser.resolveType(collectionExpression, controller.getClassNode());

        if (StaticTypeCheckingSupport.implementsInterfaceOrIsSubclassOf(collectionType,ITERABLE_CLASSNODE)) {
            MethodCallExpression iterator = new MethodCallExpression(collectionExpression, "iterator", new ArgumentListExpression());
            iterator.setMethodTarget(collectionType.getMethod("iterator", Parameter.EMPTY_ARRAY));
            iterator.setImplicitThis(false);
            iterator.visit(controller.getAcg());
        } else {
            collectionExpression.visit(controller.getAcg());
View Full Code Here

        // call(Object)
        Parameter args = new Parameter(ClassHelper.OBJECT_TYPE, "args");
        MethodCallExpression doCall1arg = new MethodCallExpression(
                new VariableExpression("this"),
                "doCall",
                new ArgumentListExpression(new VariableExpression(args))
        );
        doCall1arg.setImplicitThis(true);
        doCall1arg.setMethodTarget(doCallMethod);
        closureClass.addMethod(
                new MethodNode("call",
                        Opcodes.ACC_PUBLIC,
                        ClassHelper.OBJECT_TYPE,
                        new Parameter[]{args},
                        ClassNode.EMPTY_ARRAY,
                        new ReturnStatement(doCall1arg)));

        // call()
        MethodCallExpression doCallNoArgs = new MethodCallExpression(new VariableExpression("this"), "doCall", new ArgumentListExpression(new ConstantExpression(null)));
        doCallNoArgs.setImplicitThis(true);
        doCallNoArgs.setMethodTarget(doCallMethod);
        closureClass.addMethod(
                new MethodNode("call",
                        Opcodes.ACC_PUBLIC,
View Full Code Here

        // let's replace this assignment to a subscript operator with a
        // method call
        // e.g. x[5] = 10
        // -> (x, [], 5), =, 10
        // -> methodCall(x, "putAt", [5, 10])
        ArgumentListExpression ae = new ArgumentListExpression(index,rhsValueLoader);
        controller.getInvocationWriter().makeCall(
                parent, receiver, new ConstantExpression("putAt"),
                ae, InvocationWriter.invokeMethod, false, false, false);
        controller.getOperandStack().pop();
        // return value of assignment
View Full Code Here

            int i = 0;
            for (Expression e : tuple.getExpressions()) {
                VariableExpression var = (VariableExpression) e;
                MethodCallExpression call = new MethodCallExpression(
                        rhsValueLoader, "getAt",
                        new ArgumentListExpression(new ConstantExpression(i)));
                call.visit(acg);
                i++;
                if (defineVariable) {
                    operandStack.doGroovyCast(var);
                    compileStack.defineVariable(var, true);
View Full Code Here

        // -> subscript=a, receiver=x, receiver#putAt(subscript, receiver#getAt(subscript)#plus(b))
        // the result of x[a] += b is x[a]+b, thus:
        // -> subscript=a, receiver=x, receiver#putAt(subscript, ret=receiver#getAt(subscript)#plus(b)), ret
        ExpressionAsVariableSlot subscript = new ExpressionAsVariableSlot(controller, leftBinExpr.getRightExpression(), "subscript");
        ExpressionAsVariableSlot receiver  = new ExpressionAsVariableSlot(controller, leftBinExpr.getLeftExpression(), "receiver");
        MethodCallExpression getAt = new MethodCallExpression(receiver, "getAt", new ArgumentListExpression(subscript));
        MethodCallExpression operation = new MethodCallExpression(getAt, method, expression.getRightExpression());
        ExpressionAsVariableSlot ret = new ExpressionAsVariableSlot(controller, operation, "ret");
        MethodCallExpression putAt = new MethodCallExpression(receiver, "putAt", new ArgumentListExpression(subscript, ret));

        putAt.visit(acg);
        os.pop();
        os.load(ret.getType(), ret.getIndex());
View Full Code Here

                    return callGetModel;
                }
                MethodCallExpression mce = new MethodCallExpression(
                        callGetModel,
                        "get",
                        new ArgumentListExpression(new ConstantExpression(varName))
                );
                mce.setSourcePosition(exp);
                mce.setImplicitThis(false);
                MethodCallExpression yield = new MethodCallExpression(
                        new VariableExpression("this"),
                        "tryEscape",
                        new ArgumentListExpression(mce)
                );
                yield.setImplicitThis(true);
                yield.setSourcePosition(exp);
                yield.putNodeMetaData(TARGET_VARIABLE, varName);
                return autoEscape?yield:mce;
View Full Code Here

                    callGetModel.setImplicitThis(true);
                    callGetModel.setSourcePosition(left);
                    MethodCallExpression mce = new MethodCallExpression(
                            callGetModel,
                            "put",
                            new ArgumentListExpression(new ConstantExpression(varName), right)
                    );
                    mce.setSourcePosition(left);
                    mce.setImplicitThis(false);
                    return transform(mce);
                }
View Full Code Here

            if (exp.getArguments() instanceof ArgumentListExpression) {
                args = ((ArgumentListExpression) exp.getArguments()).getExpressions();
            } else {
                args = Collections.singletonList(exp.getArguments());
            }
            Expression newArguments = transform(new ArgumentListExpression(new ConstantExpression(name.substring(1)), new ArrayExpression(ClassHelper.OBJECT_TYPE, args)));
            MethodCallExpression call = new MethodCallExpression(
                    new VariableExpression("this"),
                    "methodMissing",
                    newArguments
            );
View Full Code Here

                    try {
                        IncludeType includeType = IncludeType.valueOf(keyExpression.getText().toLowerCase());
                        MethodCallExpression call = new MethodCallExpression(
                                exp.getObjectExpression(),
                                includeType.getMethodName(),
                                new ArgumentListExpression(
                                        mapEntry.getValueExpression()
                                )
                        );
                        call.setImplicitThis(true);
                        call.setSafe(exp.isSafe());
View Full Code Here

TOP

Related Classes of org.codehaus.groovy.ast.expr.ArgumentListExpression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.