private String consRecVarCast(SVarExpIR var, String fullyQualifiedRecType) { return "((" + fullyQualifiedRecType + ") " + var.getName() + ")"; }
public boolean isLambda(AApplyExpIR applyExp) { SExpIR root = applyExp.getRoot(); if (root instanceof AApplyExpIR && root.getType() instanceof AMethodTypeIR) { return true; } if (!(root instanceof SVarExpIR)) { return false; } SVarExpIR varExp = (SVarExpIR) root; return varExp.getIsLambda() != null && varExp.getIsLambda(); }
@Override public SExpIR caseAIdentifierVarExpIR(AIdentifierVarExpIR node) throws AnalysisException { if (node instanceof SVarExpIR) { SVarExpIR varExp = (SVarExpIR) node; if (BooleanUtils.isFalse(varExp.getIsLocal())) { ACastUnaryExpIR objId = consObjId(); AFieldExpIR fieldObj = new AFieldExpIR(); fieldObj.setType(node.getType().clone()); fieldObj.setMemberName(varExp.getName()); fieldObj.setObject(objId); assist.replaceNodeWith(node, fieldObj); return objId; } return node; } log.error("Expected variable expression at this point. Got: " + node); return null; }
@Override public void caseAAssignToExpStmIR(AAssignToExpStmIR node) throws AnalysisException { if(transAssistant.getInfo().getDeclAssistant().parentIsTest(node.getAncestor(ADefaultClassDeclIR.class))) { return; } if(transAssistant.getInfo().getDeclAssistant().isFullyAbstract(transAssistant.getInfo().getDeclAssistant().getSourceClass(node), transAssistant.getInfo())) { return; } if (node.getTarget() instanceof SVarExpIR) { SVarExpIR var = (SVarExpIR) node.getTarget(); if (var.getIsLocal()) { return; } } handleStateUpdate(node); }
private List<AFieldDeclIR> findDependencies(String className, AFieldDeclIR f, Map<String, AFieldDeclIR> fieldMap) throws AnalysisException { List<SVarExpIR> varExps = VarExpFinder.findOccurences(className, f.getInitial()); List<AFieldDeclIR> dependencies = new LinkedList<>(); for(SVarExpIR v : varExps) { AFieldDeclIR field = fieldMap.get(v.getName()); if(field != null) { dependencies.add(field); } } return dependencies; } }
private AMetaStmIR consTypeCheckExp(SVarExpIR arg, STypeIR formalParamType, String traceEnclosingClass, StoreAssistant storeAssistant) { /** * Don't do anything with 'tc' yet. Later it will be replaced with a proper dynamic type check */ AMetaStmIR tc = new AMetaStmIR(); tcExpInfo.add(new TcExpInfo(arg.getName(), formalParamType, tc, traceEnclosingClass)); return tc; }
private List<AMetaStmIR> consObjVarAsserts(SVarExpIR target, List<AIdentifierVarExpIR> objVars) { List<AMetaStmIR> objVarAsserts = new LinkedList<AMetaStmIR>(); if (objVars != null) { // All of them except the last for (int i = 0; i < objVars.size() - 1; i++) { addAsserts(objVarAsserts, objVars.get(i)); } if (!objVarAsserts.isEmpty()) { AIdentifierVarExpIR last = objVars.get(objVars.size() - 1); if (!target.getName().equals(last.getName())) { addAsserts(objVarAsserts, last); } } } Collections.reverse(objVarAsserts); return objVarAsserts; }
if (v.getName().equals(n))
String consCheckExp = typeInfo.consCheckExp(encClass.getName(), javaPackage, var.getName(), nameGen);
AMetaStmIR assertNotNull = util.consVarNotNullAssert(recObjVar.getName());