The method applyParseOp may modify the argument vector. In the case of the sygus V1 parser, this argument vector was then being used to set up a print callback, leading to incorrect printing and failures.
Work towards having a working V1 -> V2 conversion for the release.
FYI @abdoo8080
api::Term lbvl = makeSygusBoundVarList(dt, i, ltypes, largs);
// make the let_body
- api::Term body = applyParseOp(ops[i], largs);
+ std::vector<api::Term> largsApply = largs;
+ api::Term body = applyParseOp(ops[i], largsApply);
// replace by lambda
ParseOp pLam;
pLam.d_expr = d_solver->mkTerm(api::LAMBDA, lbvl, body);