private VariableExpression valueRecorderExpression() { return new VariableExpression(SpockNames.VALUE_RECORDER + (valueRecorderIndex == 0 ? "" : String.valueOf(valueRecorderIndex)), astNodeCache.ValueRecorder); }
private VariableExpression errorCollectorExpression() { return new VariableExpression(SpockNames.ERROR_COLLECTOR + (errorCollectorIndex == 0 ? "" : String.valueOf(errorCollectorIndex)), astNodeCache.ErrorCollector); }
private BinaryExpression createVariableNotNullExpression(VariableExpression var) { return new BinaryExpression( new VariableExpression(var), Token.newSymbol(Types.COMPARE_NOT_EQUAL, -1, -1), new ConstantExpression(null)); }
private CatchStatement createThrowableAssignmentAndRethrowCatchStatement(VariableExpression assignmentVar) { Parameter catchParameter = new Parameter(nodeCache.Throwable, "$spock_tmp_throwable"); BinaryExpression assignThrowableExpr = new BinaryExpression( new VariableExpression(assignmentVar), Token.newSymbol(Types.ASSIGN, -1, -1), new VariableExpression(catchParameter)); return new CatchStatement(catchParameter, new BlockStatement( Arrays.asList( new ExpressionStatement(assignThrowableExpr), new ThrowStatement(new VariableExpression(catchParameter))), new VariableScope())); }
public static Expression getImplicitParameterRef(ClosureExpression expr) { assert hasImplicitParameter(expr); DynamicVariable var = new DynamicVariable("it", false); return new VariableExpression(var); }
/** * Creates an assignment expression in which the specified expression * is written into the specified variable name. */ public static BinaryExpression newAssignmentExpression(Variable variable, Expression rhs) { VariableExpression lhs = new VariableExpression(variable); Token operator = Token.newPlaceholder(Types.ASSIGN); return new BinaryExpression(lhs, operator, rhs); }
private Statement createNewLine(final ASTNode node) { MethodCallExpression mce = new MethodCallExpression( new VariableExpression("this"), "newLine", ArgumentListExpression.EMPTY_ARGUMENTS ); mce.setImplicitThis(true); mce.setSourcePosition(node); ExpressionStatement stmt = new ExpressionStatement(mce); stmt.setSourcePosition(node); return stmt; } }
private VariableExpression createDataProcessorVariable(Expression varExpr, ASTNode sourcePos) throws InvalidSpecCompileException { if (!(varExpr instanceof VariableExpression)) notAParameterization(sourcePos); VariableExpression typedVarExpr = (VariableExpression)varExpr; verifyDataProcessorVariable(typedVarExpr); VariableExpression result = new VariableExpression(typedVarExpr.getName(), typedVarExpr.getType()); dataProcessorVars.add(result); return result; }
private Expression record(Expression expr) { // replace expr with $spock_valueRecorder.record($spock_valueRecorder.startRecordingValue(recordCount++), <expr>) return AstUtil.createDirectMethodCall( new VariableExpression(SpockNames.VALUE_RECORDER), resources.getAstNodeCache().ValueRecorder_Record, new ArgumentListExpression( AstUtil.createDirectMethodCall( new VariableExpression(SpockNames.VALUE_RECORDER), resources.getAstNodeCache().ValueRecorder_StartRecordingValue, new ArgumentListExpression(new ConstantExpression(recordCount++)) ), expr)); }
public void testPrimitiveOriginTypeConstructorVariableExpression() { VariableExpression boolExpression = new VariableExpression("foo",ClassHelper.boolean_TYPE); VariableExpression intExpression = new VariableExpression("foo", ClassHelper.int_TYPE); VariableExpression newBoolExpression = new VariableExpression(boolExpression); VariableExpression newIntExpression = new VariableExpression(intExpression); assertEquals(newBoolExpression.getOriginType().getName(),"boolean"); assertEquals(newIntExpression.getOriginType().getName(),"int"); }
private Expression copyVarExpr(VariableExpression varExpr) { VariableExpression newVarExpr = new VariableExpression(varExpr.getName(), varExpr.getOriginType()); newVarExpr.setAccessedVariable(varExpr.getAccessedVariable()); newVarExpr.setSourcePosition(varExpr); return newVarExpr; } }
private Expression realizeNas(Expression expr) { return AstUtil.createDirectMethodCall( new VariableExpression(SpockNames.VALUE_RECORDER), resources.getAstNodeCache().ValueRecorder_RealizeNas, new ArgumentListExpression(new ConstantExpression(recordCount), expr)); }
private boolean handleImplicitCallOnMethodParam(MethodCallExpression expr) { if (!expr.isImplicitThis()) return false; String methodName = expr.getMethodAsString(); List<Parameter> params = Arrays.asList(resources.getCurrentMethod().getAst().getParameters()); for (Parameter param : params) { if (param.getName().equals(methodName)) { expr.setMethod(new ConstantExpression("call")); expr.setObjectExpression(new VariableExpression(methodName)); return true; } } return false; }
public void testIsDynamicTyped_DYNMAMIC_TYPE() { VariableExpression intExpression = new VariableExpression("foo", ClassHelper.DYNAMIC_TYPE); assertTrue(intExpression.isDynamicTyped()); }
public void testPrimitiveOriginType() { VariableExpression boolExpression = new VariableExpression("fo",ClassHelper.boolean_TYPE); VariableExpression intExpression = new VariableExpression("foo", ClassHelper.int_TYPE); assertEquals(boolExpression.getOriginType().getName(),"boolean"); assertEquals(intExpression.getOriginType().getName(),"int"); }
public void testNonPrimitiveOriginType() { VariableExpression boolExpression = new VariableExpression("foo",ClassHelper.Boolean_TYPE); VariableExpression intExpression = new VariableExpression("foo", ClassHelper.Integer_TYPE); assertEquals(boolExpression.getOriginType().getName(),"java.lang.Boolean"); assertEquals(intExpression.getOriginType().getName(),"java.lang.Integer"); }
private MethodCallExpression referenceToCurrentClosure() { return new MethodCallExpression( new VariableExpression("this"), new ConstantExpression("each"), new ArgumentListExpression( new PropertyExpression( new ClassExpression(ClassHelper.makeWithoutCaching(Closure.class)), new ConstantExpression("IDENTITY") ) ) ); }
public void testPrimitiveOriginTypeConstructorParameter() { Parameter boolParameter = new Parameter(ClassHelper.boolean_TYPE,"foo"); Parameter intParameter = new Parameter(ClassHelper.int_TYPE,"foo"); VariableExpression newBoolExpression = new VariableExpression(boolParameter); VariableExpression newIntExpression = new VariableExpression(intParameter); assertEquals(newBoolExpression.getOriginType().getName(),"boolean"); assertEquals(newIntExpression.getOriginType().getName(),"int"); }
public void testIsDynamicTyped_DynamicVariable() { VariableExpression intExpression = new VariableExpression(new DynamicVariable("foo",false)); assertTrue(intExpression.isDynamicTyped()); } }
public void testIsDynamicTypedExplicitObject() { VariableExpression intExpression = new VariableExpression("foo", new ClassNode(Object.class)); assertFalse(intExpression.isDynamicTyped()); }