public void visitClosureExpression(ClosureExpression expression) { pushState(); expression.setVariableScope(currentScope); if (expression.isParameterSpecified()) { Parameter[] parameters = expression.getParameters(); for (Parameter parameter : parameters) { parameter.setInStaticContext(currentScope.isInStaticContext()); if (parameter.hasInitialExpression()) { parameter.getInitialExpression().visit(this); } declare(parameter, expression); } } else if (expression.getParameters() != null) { Parameter var = new Parameter(ClassHelper.OBJECT_TYPE, "it"); var.setInStaticContext(currentScope.isInStaticContext()); currentScope.putDeclaredVariable(var); } super.visitClosureExpression(expression); markClosureSharedVariables(); popState(); }
protected Statement filterStatement(Statement statement) { if (statement instanceof ExpressionStatement) { ExpressionStatement expStmt = (ExpressionStatement) statement; Expression expression = expStmt.getExpression(); if (expression instanceof ClosureExpression) { ClosureExpression closureExp = (ClosureExpression) expression; if (!closureExp.isParameterSpecified()) { return closureExp.getCode(); } } } return statement; }
@Override public void visitClosureExpression(ClosureExpression expression) { if (!blocks.remove(expression)) { return; } if (expression.isParameterSpecified()) { for (Parameter param : expression.getParameters()) { variables.put(param.getName(), param); } } else { variables.put("it", new VariableExpression("it")); // NOI18N } super.visitClosureExpression(expression); }
@Override public void visitClosureExpression(ClosureExpression expression) { if (expression.isParameterSpecified() && (leaf instanceof Variable)) { visitParameters(expression.getParameters(), (Variable) leaf); } super.visitClosureExpression(expression); }
@Override public void visitClosureExpression(ClosureExpression node) { if (isInside(node, line, column)) { super.visitClosureExpression(node); if (node.isParameterSpecified()) { for (Parameter parameter : node.getParameters()) { isInside(parameter, line, column); } } } }
@Override public void visitClosureExpression(ClosureExpression expression) { secondPass = false; if (expression.getCode() == null || expression.getCode() instanceof EmptyStatement) { addError("[GContracts] Annotation does not contain any expressions (e.g. use '@Requires({ argument1 })').", expression); } if (expression.getCode() instanceof BlockStatement && ((BlockStatement) expression.getCode()).getStatements().isEmpty()) { addError("[GContracts] Annotation does not contain any expressions (e.g. use '@Requires({ argument1 })').", expression); } if (expression.isParameterSpecified() && !AnnotationUtils.hasAnnotationOfType(annotationNode.getClassNode(), POSTCONDITION_TYPE_NAME)) { addError("[GContracts] Annotation does not support parameters (the only exception are postconditions).", expression); } if (expression.isParameterSpecified()) { for (Parameter param : expression.getParameters()) { if (!("result".equals(param.getName()) || "old".equals(param.getName()))) { addError("[GContracts] Postconditions only allow 'old' and 'result' closure parameters.", expression); } if (!param.isDynamicTyped()) { addError("[GContracts] Postconditions do not support explicit types.", expression); } } } super.visitClosureExpression(expression); }
public void visitClosureExpression(ClosureExpression expression) { pushState(); expression.setVariableScope(currentScope); if (expression.isParameterSpecified()) { Parameter[] parameters = expression.getParameters(); for (Parameter parameter : parameters) { parameter.setInStaticContext(currentScope.isInStaticContext()); if (parameter.hasInitialExpression()) { parameter.getInitialExpression().visit(this); } declare(parameter, expression); } } else if (expression.getParameters() != null) { Parameter var = new Parameter(ClassHelper.OBJECT_TYPE, "it"); var.setInStaticContext(currentScope.isInStaticContext()); currentScope.putDeclaredVariable(var); } super.visitClosureExpression(expression); markClosureSharedVariables(); popState(); }
public void visitClosureExpression(ClosureExpression expression) { pushState(); inClosure = true; // as result of the Paris meeting Closure resolves // always dynamically currentScope.setDynamicResolving(true); expression.setVariableScope(currentScope); if (expression.isParameterSpecified()) { Parameter[] parameters = expression.getParameters(); for (int i = 0; i < parameters.length; i++) { parameters[i].setInStaticContext(currentScope.isInStaticContext()); if (parameters[i].hasInitialExpression()) { parameters[i].getInitialExpression().visit(this); } declare(parameters[i], expression); } } else if (expression.getParameters() != null) { Parameter var = new Parameter(ClassHelper.OBJECT_TYPE,"it"); var.setInStaticContext(currentScope.isInStaticContext()); currentScope.putDeclaredVariable(var); } super.visitClosureExpression(expression); popState(); }
public void visitClosureExpression(ClosureExpression expression) { pushState(); inClosure = true; // as result of the Paris meeting Closure resolves // always dynamically currentScope.setDynamicResolving(true); expression.setVariableScope(currentScope); if (expression.isParameterSpecified()) { Parameter[] parameters = expression.getParameters(); for (int i = 0; i < parameters.length; i++) { parameters[i].setInStaticContext(currentScope.isInStaticContext()); if (parameters[i].hasInitialExpression()) { parameters[i].getInitialExpression().visit(this); } declare(parameters[i], expression); } } else if (expression.getParameters() != null) { Parameter var = new Parameter(ClassHelper.OBJECT_TYPE,"it"); var.setInStaticContext(currentScope.isInStaticContext()); currentScope.putDeclaredVariable(var); } super.visitClosureExpression(expression); popState(); }
public void visitClosureExpression(ClosureExpression expression) { pushState(); inClosure = true; // as result of the Paris meeting Closure resolves // always dynamically currentScope.setDynamicResolving(true); expression.setVariableScope(currentScope); if (expression.isParameterSpecified()) { Parameter[] parameters = expression.getParameters(); for (int i = 0; i < parameters.length; i++) { parameters[i].setInStaticContext(currentScope.isInStaticContext()); if (parameters[i].hasInitialExpression()) { parameters[i].getInitialExpression().visit(this); } declare(parameters[i], expression); } } else if (expression.getParameters() != null) { Parameter var = new Parameter(ClassHelper.OBJECT_TYPE,"it"); var.setInStaticContext(currentScope.isInStaticContext()); currentScope.putDeclaredVariable(var); } super.visitClosureExpression(expression); popState(); }