public AFormalParamLocalParamIR getInvFormalParam(AMethodDeclIR invMethod) { if (invMethod.getFormalParams().size() == 1) { return invMethod.getFormalParams().get(0); } else { log.error("Expected only a single formal parameter " + "for named invariant type method " + invMethod.getName() + " but got " + invMethod.getFormalParams().size()); if (!invMethod.getFormalParams().isEmpty()) { return invMethod.getFormalParams().get(0); } else { return null; } } }
public void removeRunFullSuiteMethod(ADefaultClassDeclIR node) { for (int i = 0; i < node.getMethods().size(); i++) { AMethodDeclIR currentMethod = node.getMethods().get(i); if (currentMethod.getName().equals(IRConstants.TEST_CASE_RUN_FULL_SUITE) && currentMethod.getFormalParams().isEmpty()) { node.getMethods().remove(i); break; } } }
private List<ClonableString> consMethodCond(SDeclIR decl, List<AFormalParamLocalParamIR> parentMethodParams, String jmlAnno) { if (decl instanceof AMethodDeclIR) { AMethodDeclIR cond = (AMethodDeclIR) decl; List<String> fieldNames = new LinkedList<String>(); // The arguments of a function or an operation are passed to the pre/post condition int i; for (i = 0; i < parentMethodParams.size(); i++) { fieldNames.add(util.getMethodCondArgName(parentMethodParams.get(i).getPattern())); } // Now compute the remaining argument names which (possibly) // include the RESULT and the old state passed for (; i < cond.getFormalParams().size(); i++) { fieldNames.add(util.getMethodCondArgName(cond.getFormalParams().get(i).getPattern())); } return annotator.consAnno(jmlAnno, cond.getName(), fieldNames); } else if (decl != null) { log.error("Expected pre/post condition to be a method declaration at this point. Got: " + decl); } return null; }
private boolean isJUnitSignature(AMethodDeclIR m) { return m.getAccess().equals(IRConstants.PUBLIC) && BooleanUtils.isFalse(m.getStatic()) && BooleanUtils.isFalse(m.getIsConstructor()) && m.getFormalParams().isEmpty() && !(m.getTag() instanceof IRGeneratedTag); }
if (invMethod.getFormalParams().size() != 1) + invMethod.getFormalParams().size()); if (invMethod.getFormalParams().isEmpty()) AFormalParamLocalParamIR param = invMethod.getFormalParams().getFirst(); invMethod.getFormalParams().clear(); nextParam.setType(f.getType().clone()); invMethod.getFormalParams().add(nextParam);
@Override public void caseAMethodDeclIR(AMethodDeclIR node) throws AnalysisException List<PatternInfo> patternInfo = extractFromParams(node.getFormalParams()); } else for (AFormalParamLocalParamIR param : node.getFormalParams())
List<AFormalParamLocalParamIR> copy = new ArrayList<AFormalParamLocalParamIR>(node.getFormalParams()); for( AFormalParamLocalParamIR e : copy)
List<AFormalParamLocalParamIR> copy = new ArrayList<AFormalParamLocalParamIR>(node.getFormalParams()); for( AFormalParamLocalParamIR e : copy)
LinkedList<PPattern> paramPatterns = node.getParameterPatterns(); LinkedList<AFormalParamLocalParamIR> formalParameters = method.getFormalParams();
paramTypes.remove(paramTypes.size() - 1); LinkedList<AFormalParamLocalParamIR> formalParams = preCondMethod.getFormalParams(); formalParams.remove(formalParams.size() - 1);
call.setType(m.getMethodType().getResult().clone()); for (int i = 0; i < m.getFormalParams().size(); i++) AFormalParamLocalParamIR param = m.getFormalParams().get(i);
lambdaDecl.getFormalParams().get(i).setType(paramType.clone()); lambdaDecl.getFormalParams().get(i).setPattern(pattern.clone());
public AMethodDeclIR consEqualMethodSignature(String paramName) { AMethodDeclIR equalsMethod = new AMethodDeclIR(); equalsMethod.setImplicit(false); AMethodTypeIR methodType = new AMethodTypeIR(); methodType.getParams().add(new AObjectTypeIR()); AExternalTypeIR returnType = new AExternalTypeIR(); returnType.setInfo(null); returnType.setName(IJavaConstants.BOOLEAN); methodType.setResult(returnType); equalsMethod.setAccess(IJavaConstants.PUBLIC); equalsMethod.setIsConstructor(false); equalsMethod.setName(IJavaConstants.EQUALS); equalsMethod.setMethodType(methodType); // Add the formal parameter "Object obj" to the method AFormalParamLocalParamIR formalParam = new AFormalParamLocalParamIR(); AIdentifierPatternIR idPattern = new AIdentifierPatternIR(); idPattern.setName(paramName); formalParam.setPattern(idPattern); AObjectTypeIR paramType = new AObjectTypeIR(); formalParam.setType(paramType); equalsMethod.getFormalParams().add(formalParam); return equalsMethod; }
formalParam.setPattern(params.get(i).getPattern().clone()); evalMethod.getFormalParams().add(formalParam); methodTypeInterface.getTemplateTypes().add(templateType.clone()); evalMethodType.getParams().add(templateType.clone());
condCall.setRoot(condVar); LinkedList<AFormalParamLocalParamIR> params = node.getFormalParams();
private AMethodDeclIR consTraceMethod(ANamedTraceDeclIR node) throws AnalysisException { AClassTypeIR testAccType = transAssistant.consClassType(tracePrefixes.testAccumulatorClassName()); AMethodTypeIR methodType = new AMethodTypeIR(); methodType.setResult(new AVoidTypeIR()); methodType.getParams().add(testAccType); AFormalParamLocalParamIR instanceParam = new AFormalParamLocalParamIR(); instanceParam.setType(testAccType.clone()); instanceParam.setPattern(transAssistant.getInfo().getPatternAssistant().consIdPattern(tracePrefixes.traceMethodParamName())); AMethodDeclIR traceMethod = new AMethodDeclIR(); traceMethod.setTag(new TraceMethodTag()); traceMethod.getFormalParams().add(instanceParam); traceMethod.setImplicit(false); traceMethod.setAbstract(false); traceMethod.setAccess(IRConstants.PUBLIC); traceMethod.setBody(consTraceMethodBody(node)); traceMethod.setIsConstructor(false); traceMethod.setStatic(Settings.dialect == Dialect.VDM_SL); traceMethod.setMethodType(methodType); traceMethod.setName(getTraceName(node) + "_" + tracePrefixes.runTraceMethodName()); return traceMethod; }
for (AFormalParamLocalParamIR param : node.getFormalParams())
public AMethodDeclIR genInvMethod(ADefaultClassDeclIR clazz, ANamedTypeDeclIR namedTypeDecl) { AReturnStmIR body = new AReturnStmIR(); body.setExp(jmlGen.getJavaGen().getInfo().getExpAssistant().consBoolLiteral(true)); STypeIR paramType = namedTypeDecl.getType(); AMethodTypeIR invMethodType = new AMethodTypeIR(); invMethodType.setResult(new ABoolBasicTypeIR()); invMethodType.getParams().add(paramType.clone()); String formalParamName = new NameGen(clazz).getName(JmlGenerator.GEN_INV_METHOD_PARAM_NAME); AFormalParamLocalParamIR formalParam = new AFormalParamLocalParamIR(); formalParam.setType(paramType.clone()); formalParam.setPattern(jmlGen.getJavaGen().getInfo().getPatternAssistant().consIdPattern(formalParamName)); AMethodDeclIR method = new AMethodDeclIR(); method.setImplicit(false); method.setAbstract(false); method.setAccess(IRConstants.PUBLIC); method.setAsync(false); method.setBody(body); method.getFormalParams().add(formalParam); method.setIsConstructor(false); method.setMethodType(invMethodType); method.setName("inv_" + namedTypeDecl.getName()); method.setStatic(true); return method; }
private AMethodDeclIR consSetter(AFieldDeclIR f) { AMethodDeclIR setter = new AMethodDeclIR(); setter.setAbstract(false); setter.setAccess(IRConstants.PUBLIC); setter.setAsync(false); setter.setImplicit(false); setter.setIsConstructor(false); setter.setName(consSetCallName(f.getName())); setter.setStatic(false); setter.setSourceNode(f.getSourceNode()); String paramName = consParamName(f); AFormalParamLocalParamIR param = new AFormalParamLocalParamIR(); param.setType(f.getType().clone()); param.setPattern(jmlGen.getJavaGen().getInfo().getPatternAssistant().consIdPattern(paramName)); setter.getFormalParams().add(param); AMethodTypeIR methodType = new AMethodTypeIR(); methodType.setResult(new AVoidTypeIR()); methodType.getParams().add(f.getType().clone()); setter.setMethodType(methodType); AAssignToExpStmIR fieldUpdate = new AAssignToExpStmIR(); fieldUpdate.setTarget(jmlGen.getJavaGen().getInfo().getExpAssistant().consIdVar(f.getName(), f.getType().clone())); fieldUpdate.setExp(jmlGen.getJavaGen().getInfo().getExpAssistant().consIdVar(paramName, f.getType().clone())); setter.setBody(fieldUpdate); return setter; }
constructor.setBody(body); LinkedList<AFormalParamLocalParamIR> formalParams = constructor.getFormalParams(); LinkedList<SStmIR> bodyStms = body.getStatements(); LinkedList<AFieldDeclIR> fields = record.getFields();