public Object visitStmtFor(StmtFor stmt) { Statement newInit = null; if (stmt.getInit() != null) { newInit = (Statement) stmt.getInit().accept(this); } if (stmt.getCond() != null) { stmt.getCond().accept(new UpgradeStarToInt(this, TypePrimitive.bittype, nres)); } Expression newCond = stmt.getCond(); Statement newIncr = null; if (stmt.getIncr() != null) { newIncr = (Statement) stmt.getIncr().accept(this); } Statement tmp = stmt.getBody(); Statement newBody = StmtEmpty.EMPTY; if (tmp != null) { newBody = (Statement) tmp.accept(this); } if (newInit == stmt.getInit() && newCond == stmt.getCond() && newIncr == stmt.getIncr() && newBody == stmt.getBody()) return stmt; return new StmtFor(stmt, newInit, newCond, newIncr, newBody, stmt.isCanonical()); }