3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-09 12:50:32 +00:00

ufbv_rewriter_tactic: remove unneeded imp class

This commit is contained in:
Nuno Lopes 2018-06-26 18:05:14 +01:00
parent 2b31024dab
commit 6c64e138b0

View file

@ -21,18 +21,28 @@ Notes:
#include "tactic/ufbv/ufbv_rewriter_tactic.h" #include "tactic/ufbv/ufbv_rewriter_tactic.h"
class ufbv_rewriter_tactic : public tactic { class ufbv_rewriter_tactic : public tactic {
struct imp {
ast_manager & m_manager; ast_manager & m_manager;
params_ref m_params;
imp(ast_manager & m, params_ref const & p) : m_manager(m) { public:
updt_params(p); ufbv_rewriter_tactic(ast_manager & m, params_ref const & p):
m_manager(m), m_params(p) {}
tactic * translate(ast_manager & m) override {
return alloc(ufbv_rewriter_tactic, m, m_params);
} }
ast_manager & m() const { return m_manager; } void updt_params(params_ref const & p) override {
m_params = p;
}
void operator()(goal_ref const & g, void collect_param_descrs(param_descrs & r) override {
goal_ref_buffer & result) { insert_max_memory(r);
insert_produce_models(r);
insert_produce_proofs(r);
}
void operator()(goal_ref const & g, goal_ref_buffer & result) override {
SASSERT(g->is_well_sorted()); SASSERT(g->is_well_sorted());
tactic_report report("ufbv-rewriter", *g); tactic_report report("ufbv-rewriter", *g);
fail_if_unsat_core_generation("ufbv-rewriter", g); fail_if_unsat_core_generation("ufbv-rewriter", g);
@ -65,48 +75,7 @@ class ufbv_rewriter_tactic : public tactic {
SASSERT(g->is_well_sorted()); SASSERT(g->is_well_sorted());
} }
void updt_params(params_ref const & p) { void cleanup() override {}
}
};
imp * m_imp;
params_ref m_params;
public:
ufbv_rewriter_tactic(ast_manager & m, params_ref const & p):
m_params(p) {
m_imp = alloc(imp, m, p);
}
tactic * translate(ast_manager & m) override {
return alloc(ufbv_rewriter_tactic, m, m_params);
}
~ufbv_rewriter_tactic() override {
dealloc(m_imp);
}
void updt_params(params_ref const & p) override {
m_params = p;
m_imp->updt_params(p);
}
void collect_param_descrs(param_descrs & r) override {
insert_max_memory(r);
insert_produce_models(r);
insert_produce_proofs(r);
}
void operator()(goal_ref const & in, goal_ref_buffer & result) override {
(*m_imp)(in, result);
}
void cleanup() override {
ast_manager & m = m_imp->m();
imp * d = alloc(imp, m, m_params);
std::swap(d, m_imp);
dealloc(d);
}
}; };