public String hackInv(ARecordDeclIR type) { if (type.getInvariant() != null) { AFuncDeclIR invFunc = (AFuncDeclIR) type.getInvariant(); StringBuilder sb = new StringBuilder(); sb.append("inv "); sb.append(invFunc.getFormalParams().get(0).getPattern().toString()); sb.append(" == "); sb.append(invFunc.getName()); sb.append("("); sb.append("&"); sb.append(invFunc.getFormalParams().get(0).getPattern().toString()); sb.append(")"); return sb.toString(); } return ""; }
public String hackInv(ANamedTypeDeclIR type) { ATypeDeclIR tDecl = (ATypeDeclIR) type.parent(); if (tDecl.getInv() != null) { AFuncDeclIR invFunc = (AFuncDeclIR) tDecl.getInv(); StringBuilder sb = new StringBuilder(); sb.append("inv "); sb.append(invFunc.getFormalParams().get(0).getPattern().toString()); sb.append(" == "); sb.append(invFunc.getName()); sb.append("("); sb.append("&"); sb.append(invFunc.getFormalParams().get(0).getPattern().toString()); sb.append(")"); return sb.toString(); } return ""; }
@Override public void caseAFuncDeclIR(AFuncDeclIR node) throws AnalysisException { super.caseAFuncDeclIR(node); if (!node.getTemplateTypes().isEmpty()) { for(ATemplateTypeIR t : node.getTemplateTypes()) { AFormalParamLocalParamIR param = new AFormalParamLocalParamIR(); param.setType(new AUnknownTypeIR()); param.setPattern(assist.getInfo().getPatternAssistant().consIdPattern(toTypeArgName(t))); node.getFormalParams().add(param); } } }
List<AFormalParamLocalParamIR> copy = new ArrayList<AFormalParamLocalParamIR>(node.getFormalParams()); for( AFormalParamLocalParamIR e : copy)
List<AFormalParamLocalParamIR> copy = new ArrayList<AFormalParamLocalParamIR>(node.getFormalParams()); for( AFormalParamLocalParamIR e : copy)
List<AFormalParamLocalParamIR> copy = new ArrayList<AFormalParamLocalParamIR>(node.getFormalParams()); for( AFormalParamLocalParamIR e : copy)
List<AFormalParamLocalParamIR> copy = new ArrayList<AFormalParamLocalParamIR>(node.getFormalParams()); for( AFormalParamLocalParamIR e : copy)
List<AFormalParamLocalParamIR> copy = new ArrayList<AFormalParamLocalParamIR>(node.getFormalParams()); for( AFormalParamLocalParamIR e : copy)
List<PPattern> paramPatterns = iterator.next(); LinkedList<AFormalParamLocalParamIR> formalParameters = method.getFormalParams();
LinkedList<ATemplateTypeIR> templateTypes = node.getTemplateTypes(); AMethodTypeIR methodType = node.getMethodType(); LinkedList<AFormalParamLocalParamIR> formalParams = node.getFormalParams(); String name = node.getName(); SExpIR body = node.getBody();