3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-05-16 23:25:36 +00:00

fix vector<le, false> to vector<le> we need the copy and destructor semantics for expr_ref

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2026-04-21 18:37:09 +02:00
parent 03c990e0e1
commit b2fa00ecf4
3 changed files with 7 additions and 8 deletions

View file

@ -44,7 +44,7 @@ NSB review:
namespace seq {
void deps_to_lits(dep_tracker deps, svector<enode_pair> &eqs, svector<sat::literal> &lits, vector<le, false>& les) {
void deps_to_lits(dep_tracker deps, svector<enode_pair> &eqs, svector<sat::literal> &lits, vector<le>& les) {
vector<dep_source, false> vs;
dep_manager::s_linearize(deps, vs);
for (dep_source const &d : vs) {

View file

@ -362,7 +362,7 @@ namespace seq {
void deps_to_lits(dep_tracker deps,
svector<enode_pair>& eqs,
svector<sat::literal>& lits,
vector<le, false>& les);
vector<le>& les);
// string equality constraint: lhs = rhs
// mirrors ZIPT's StrEq (both sides are regex-free snode trees)

View file

@ -1262,7 +1262,7 @@ namespace smt {
// conditional constraints: propagate with justification from dep_tracker
enode_pair_vector eqs;
literal_vector lits;
vector<seq::le, false> les;
vector<seq::le> les;
seq::deps_to_lits(lc.m_dep, eqs, lits, les);
for (auto const& d : les)
lits.push_back(mk_le_literal(d));
@ -1553,11 +1553,10 @@ namespace smt {
enode_pair_vector eqs;
literal_vector dep_lits;
vector<seq::le, false> dep_les;
for (unsigned idx : mem_indices) {
if (mems[idx].m_dep)
seq::deps_to_lits(mems[idx].m_dep, eqs, dep_lits, dep_les);
}
vector<seq::le> dep_les;
for (unsigned idx : mem_indices)
seq::deps_to_lits(mems[idx].m_dep, eqs, dep_lits, dep_les);
for (auto const &d : dep_les)
dep_lits.push_back(mk_le_literal(d));