mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
Use override rather than virtual.
This commit is contained in:
parent
ce123d9dbc
commit
7167fda1dc
220 changed files with 2546 additions and 2548 deletions
|
@ -81,14 +81,14 @@ class heap_trie {
|
|||
Value m_value;
|
||||
public:
|
||||
leaf(): node(leaf_t) {}
|
||||
virtual ~leaf() {}
|
||||
~leaf() override {}
|
||||
Value const& get_value() const { return m_value; }
|
||||
void set_value(Value const& v) { m_value = v; }
|
||||
virtual void display(std::ostream& out, unsigned indent) const {
|
||||
void display(std::ostream& out, unsigned indent) const override {
|
||||
out << " value: " << m_value;
|
||||
}
|
||||
virtual unsigned num_nodes() const { return 1; }
|
||||
virtual unsigned num_leaves() const { return this->ref_count()>0?1:0; }
|
||||
unsigned num_nodes() const override { return 1; }
|
||||
unsigned num_leaves() const override { return this->ref_count()>0?1:0; }
|
||||
};
|
||||
|
||||
typedef buffer<std::pair<Key,node*>, true, 2> children_t;
|
||||
|
@ -99,7 +99,7 @@ class heap_trie {
|
|||
public:
|
||||
trie(): node(trie_t) {}
|
||||
|
||||
virtual ~trie() {
|
||||
~trie() override {
|
||||
}
|
||||
|
||||
node* find_or_insert(Key k, node* n) {
|
||||
|
@ -137,7 +137,7 @@ class heap_trie {
|
|||
children_t const& nodes() const { return m_nodes; }
|
||||
children_t & nodes() { return m_nodes; }
|
||||
|
||||
virtual void display(std::ostream& out, unsigned indent) const {
|
||||
void display(std::ostream& out, unsigned indent) const override {
|
||||
for (unsigned j = 0; j < m_nodes.size(); ++j) {
|
||||
if (j != 0 || indent > 0) {
|
||||
out << "\n";
|
||||
|
@ -151,7 +151,7 @@ class heap_trie {
|
|||
}
|
||||
}
|
||||
|
||||
virtual unsigned num_nodes() const {
|
||||
unsigned num_nodes() const override {
|
||||
unsigned sz = 1;
|
||||
for (unsigned j = 0; j < m_nodes.size(); ++j) {
|
||||
sz += m_nodes[j].second->num_nodes();
|
||||
|
@ -159,7 +159,7 @@ class heap_trie {
|
|||
return sz;
|
||||
}
|
||||
|
||||
virtual unsigned num_leaves() const {
|
||||
unsigned num_leaves() const override {
|
||||
unsigned sz = 0;
|
||||
for (unsigned j = 0; j < m_nodes.size(); ++j) {
|
||||
sz += m_nodes[j].second->num_leaves();
|
||||
|
|
|
@ -175,7 +175,7 @@ class hilbert_basis::value_index2 {
|
|||
hilbert_basis* hb;
|
||||
offset_t m_value;
|
||||
checker(): hb(0) {}
|
||||
virtual bool operator()(unsigned const& v) {
|
||||
bool operator()(unsigned const& v) override {
|
||||
if (m_value.m_offset != v) { // && hb->is_subsumed(m_value, offset_t(v))) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -1932,9 +1932,9 @@ namespace algebraic_numbers {
|
|||
imp & m_imp;
|
||||
polynomial::var2anum const & m_x2v;
|
||||
opt_var2basic(imp & i, polynomial::var2anum const & x2v):m_imp(i), m_x2v(x2v) {}
|
||||
virtual unsynch_mpq_manager & m() const { return m_imp.qm(); }
|
||||
virtual bool contains(polynomial::var x) const { return m_x2v.contains(x); }
|
||||
virtual mpq const & operator()(polynomial::var x) const {
|
||||
unsynch_mpq_manager & m() const override { return m_imp.qm(); }
|
||||
bool contains(polynomial::var x) const override { return m_x2v.contains(x); }
|
||||
mpq const & operator()(polynomial::var x) const override {
|
||||
anum const & v = m_x2v(x);
|
||||
if (!v.is_basic())
|
||||
throw failed();
|
||||
|
@ -1949,9 +1949,9 @@ namespace algebraic_numbers {
|
|||
imp & m_imp;
|
||||
polynomial::var2anum const & m_x2v;
|
||||
var2basic(imp & i, polynomial::var2anum const & x2v):m_imp(i), m_x2v(x2v) {}
|
||||
virtual unsynch_mpq_manager & m() const { return m_imp.qm(); }
|
||||
virtual bool contains(polynomial::var x) const { return m_x2v.contains(x) && m_x2v(x).is_basic(); }
|
||||
virtual mpq const & operator()(polynomial::var x) const {
|
||||
unsynch_mpq_manager & m() const override { return m_imp.qm(); }
|
||||
bool contains(polynomial::var x) const override { return m_x2v.contains(x) && m_x2v(x).is_basic(); }
|
||||
mpq const & operator()(polynomial::var x) const override {
|
||||
anum const & v = m_x2v(x);
|
||||
SASSERT(v.is_basic());
|
||||
TRACE("var2basic", tout << "getting value of x" << x << " -> " << m().to_string(m_imp.basic_value(v)) << "\n";);
|
||||
|
@ -1966,9 +1966,9 @@ namespace algebraic_numbers {
|
|||
imp & m_imp;
|
||||
polynomial::var2anum const & m_x2v;
|
||||
var2interval(imp & i, polynomial::var2anum const & x2v):m_imp(i), m_x2v(x2v) {}
|
||||
virtual mpbqi_manager & m() const { return m_imp.bqim(); }
|
||||
virtual bool contains(polynomial::var x) const { return m_x2v.contains(x) && !m_x2v(x).is_basic(); }
|
||||
virtual mpbqi const & operator()(polynomial::var x) const {
|
||||
mpbqi_manager & m() const override { return m_imp.bqim(); }
|
||||
bool contains(polynomial::var x) const override { return m_x2v.contains(x) && !m_x2v(x).is_basic(); }
|
||||
mpbqi const & operator()(polynomial::var x) const override {
|
||||
anum const & v = m_x2v(x);
|
||||
SASSERT(!v.is_basic());
|
||||
return v.to_algebraic()->m_interval;
|
||||
|
@ -2220,9 +2220,9 @@ namespace algebraic_numbers {
|
|||
m_x(x),
|
||||
m_v(v) {
|
||||
}
|
||||
virtual manager & m() const { return m_am; }
|
||||
virtual bool contains(polynomial::var x) const { return x == m_x || m_x2v.contains(x); }
|
||||
virtual anum const & operator()(polynomial::var x) const {
|
||||
manager & m() const override { return m_am; }
|
||||
bool contains(polynomial::var x) const override { return x == m_x || m_x2v.contains(x); }
|
||||
anum const & operator()(polynomial::var x) const override {
|
||||
if (x == m_x)
|
||||
return m_v;
|
||||
else
|
||||
|
@ -2553,9 +2553,9 @@ namespace algebraic_numbers {
|
|||
m_x2v(x2v),
|
||||
m_v(v) {
|
||||
}
|
||||
virtual manager & m() const { return m_am; }
|
||||
virtual bool contains(polynomial::var x) const { return true; }
|
||||
virtual anum const & operator()(polynomial::var x) const {
|
||||
manager & m() const override { return m_am; }
|
||||
bool contains(polynomial::var x) const override { return true; }
|
||||
anum const & operator()(polynomial::var x) const override {
|
||||
if (m_x2v.contains(x))
|
||||
return m_x2v(x);
|
||||
else
|
||||
|
|
|
@ -6350,9 +6350,9 @@ namespace polynomial {
|
|||
m_var_pos(buffer, xs_sz, xs),
|
||||
m_vs(vs) {
|
||||
}
|
||||
virtual unsynch_mpq_manager & m() const { UNREACHABLE(); static unsynch_mpq_manager m; return m; }
|
||||
virtual bool contains(var x) const { return m_var_pos(x) != UINT_MAX; }
|
||||
virtual mpq const & operator()(var x) const { return m_vs[m_var_pos(x)]; }
|
||||
unsynch_mpq_manager & m() const override { UNREACHABLE(); static unsynch_mpq_manager m; return m; }
|
||||
bool contains(var x) const override { return m_var_pos(x) != UINT_MAX; }
|
||||
mpq const & operator()(var x) const override { return m_vs[m_var_pos(x)]; }
|
||||
};
|
||||
|
||||
polynomial * substitute(polynomial const * p, unsigned xs_sz, var const * xs, mpq const * vs) {
|
||||
|
@ -6527,9 +6527,9 @@ namespace polynomial {
|
|||
numeral const & m_val;
|
||||
public:
|
||||
single_var2value(numeral_manager & m, var x, numeral const & val):m_manager(m), m_x(x), m_val(val) {}
|
||||
virtual numeral_manager & m() const { return m_manager; }
|
||||
virtual bool contains(var x) const { return m_x == x; }
|
||||
virtual numeral const & operator()(var x) const { SASSERT(m_x == x); return m_val; }
|
||||
numeral_manager & m() const override { return m_manager; }
|
||||
bool contains(var x) const override { return m_x == x; }
|
||||
numeral const & operator()(var x) const override { SASSERT(m_x == x); return m_val; }
|
||||
};
|
||||
|
||||
void univ_eval(polynomial const * p, var x, numeral const & val, numeral & r) {
|
||||
|
|
|
@ -322,7 +322,7 @@ namespace upolynomial {
|
|||
/**
|
||||
\brief Filter the ones not in the degree set.
|
||||
*/
|
||||
bool filter_current() const {
|
||||
bool filter_current() const override {
|
||||
|
||||
// select only the ones that have degrees in the degree set
|
||||
if (!m_degree_set.in_set(current_degree())) {
|
||||
|
|
|
@ -344,13 +344,13 @@ namespace realclosure {
|
|||
// ---------------------------------
|
||||
|
||||
struct mk_pi_interval : public mk_interval {
|
||||
virtual void operator()(unsigned k, mpqi_manager & im, mpqi_manager::interval & r) {
|
||||
void operator()(unsigned k, mpqi_manager & im, mpqi_manager::interval & r) override {
|
||||
im.pi(k, r);
|
||||
}
|
||||
};
|
||||
|
||||
struct mk_e_interval : public mk_interval {
|
||||
virtual void operator()(unsigned k, mpqi_manager & im, mpqi_manager::interval & r) {
|
||||
void operator()(unsigned k, mpqi_manager & im, mpqi_manager::interval & r) override {
|
||||
im.e(k, r);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -38,22 +38,22 @@ namespace subpaving {
|
|||
CTX m_ctx;
|
||||
public:
|
||||
context_wrapper(reslimit& lim, typename CTX::numeral_manager & m, params_ref const & p, small_object_allocator * a):m_ctx(lim, m, p, a) {}
|
||||
virtual ~context_wrapper() {}
|
||||
virtual unsigned num_vars() const { return m_ctx.num_vars(); }
|
||||
virtual var mk_var(bool is_int) { return m_ctx.mk_var(is_int); }
|
||||
virtual bool is_int(var x) const { return m_ctx.is_int(x); }
|
||||
virtual var mk_monomial(unsigned sz, power const * pws) { return m_ctx.mk_monomial(sz, pws); }
|
||||
virtual void inc_ref(ineq * a) { m_ctx.inc_ref(reinterpret_cast<typename CTX::ineq*>(a)); }
|
||||
virtual void dec_ref(ineq * a) { m_ctx.dec_ref(reinterpret_cast<typename CTX::ineq*>(a)); }
|
||||
virtual void add_clause(unsigned sz, ineq * const * atoms) { m_ctx.add_clause(sz, reinterpret_cast<typename CTX::ineq * const *>(atoms)); }
|
||||
virtual void display_constraints(std::ostream & out, bool use_star) const { m_ctx.display_constraints(out, use_star); }
|
||||
virtual void set_display_proc(display_var_proc * p) { m_ctx.set_display_proc(p); }
|
||||
virtual void reset_statistics() { m_ctx.reset_statistics(); }
|
||||
virtual void collect_statistics(statistics & st) const { m_ctx.collect_statistics(st); }
|
||||
virtual void collect_param_descrs(param_descrs & r) { m_ctx.collect_param_descrs(r); }
|
||||
virtual void updt_params(params_ref const & p) { m_ctx.updt_params(p); }
|
||||
virtual void operator()() { m_ctx(); }
|
||||
virtual void display_bounds(std::ostream & out) const { m_ctx.display_bounds(out); }
|
||||
~context_wrapper() override {}
|
||||
unsigned num_vars() const override { return m_ctx.num_vars(); }
|
||||
var mk_var(bool is_int) override { return m_ctx.mk_var(is_int); }
|
||||
bool is_int(var x) const override { return m_ctx.is_int(x); }
|
||||
var mk_monomial(unsigned sz, power const * pws) override { return m_ctx.mk_monomial(sz, pws); }
|
||||
void inc_ref(ineq * a) override { m_ctx.inc_ref(reinterpret_cast<typename CTX::ineq*>(a)); }
|
||||
void dec_ref(ineq * a) override { m_ctx.dec_ref(reinterpret_cast<typename CTX::ineq*>(a)); }
|
||||
void add_clause(unsigned sz, ineq * const * atoms) override { m_ctx.add_clause(sz, reinterpret_cast<typename CTX::ineq * const *>(atoms)); }
|
||||
void display_constraints(std::ostream & out, bool use_star) const override { m_ctx.display_constraints(out, use_star); }
|
||||
void set_display_proc(display_var_proc * p) override { m_ctx.set_display_proc(p); }
|
||||
void reset_statistics() override { m_ctx.reset_statistics(); }
|
||||
void collect_statistics(statistics & st) const override { m_ctx.collect_statistics(st); }
|
||||
void collect_param_descrs(param_descrs & r) override { m_ctx.collect_param_descrs(r); }
|
||||
void updt_params(params_ref const & p) override { m_ctx.updt_params(p); }
|
||||
void operator()() override { m_ctx(); }
|
||||
void display_bounds(std::ostream & out) const override { m_ctx.display_bounds(out); }
|
||||
};
|
||||
|
||||
class context_mpq_wrapper : public context_wrapper<context_mpq> {
|
||||
|
@ -66,11 +66,11 @@ namespace subpaving {
|
|||
m_as(m)
|
||||
{}
|
||||
|
||||
virtual ~context_mpq_wrapper() {}
|
||||
~context_mpq_wrapper() override {}
|
||||
|
||||
virtual unsynch_mpq_manager & qm() const { return m_ctx.nm(); }
|
||||
unsynch_mpq_manager & qm() const override { return m_ctx.nm(); }
|
||||
|
||||
virtual var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) {
|
||||
var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) override {
|
||||
m_as.reserve(sz);
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
m_ctx.nm().set(m_as[i], as[i]);
|
||||
|
@ -78,7 +78,7 @@ namespace subpaving {
|
|||
m_ctx.nm().set(m_c, c);
|
||||
return m_ctx.mk_sum(m_c, sz, m_as.c_ptr(), xs);
|
||||
}
|
||||
virtual ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) {
|
||||
ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) override {
|
||||
return reinterpret_cast<ineq*>(m_ctx.mk_ineq(x, k, lower, open));
|
||||
}
|
||||
};
|
||||
|
@ -108,11 +108,11 @@ namespace subpaving {
|
|||
m_q2(m_qm) {
|
||||
}
|
||||
|
||||
virtual ~context_mpf_wrapper() {}
|
||||
~context_mpf_wrapper() override {}
|
||||
|
||||
virtual unsynch_mpq_manager & qm() const { return m_qm; }
|
||||
unsynch_mpq_manager & qm() const override { return m_qm; }
|
||||
|
||||
virtual var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) {
|
||||
var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) override {
|
||||
try {
|
||||
m_as.reserve(sz);
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
|
@ -125,7 +125,7 @@ namespace subpaving {
|
|||
throw subpaving::exception();
|
||||
}
|
||||
}
|
||||
virtual ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) {
|
||||
ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) override {
|
||||
try {
|
||||
f2n<mpf_manager> & m = m_ctx.nm();
|
||||
if (lower)
|
||||
|
@ -165,11 +165,11 @@ namespace subpaving {
|
|||
m_qm(qm) {
|
||||
}
|
||||
|
||||
virtual ~context_hwf_wrapper() {}
|
||||
~context_hwf_wrapper() override {}
|
||||
|
||||
virtual unsynch_mpq_manager & qm() const { return m_qm; }
|
||||
unsynch_mpq_manager & qm() const override { return m_qm; }
|
||||
|
||||
virtual var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) {
|
||||
var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) override {
|
||||
try {
|
||||
m_as.reserve(sz);
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
|
@ -182,7 +182,7 @@ namespace subpaving {
|
|||
throw subpaving::exception();
|
||||
}
|
||||
}
|
||||
virtual ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) {
|
||||
ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) override {
|
||||
try {
|
||||
f2n<hwf_manager> & m = m_ctx.nm();
|
||||
if (lower)
|
||||
|
@ -223,11 +223,11 @@ namespace subpaving {
|
|||
m_z2(m_qm) {
|
||||
}
|
||||
|
||||
virtual ~context_fpoint_wrapper() {}
|
||||
~context_fpoint_wrapper() override {}
|
||||
|
||||
virtual unsynch_mpq_manager & qm() const { return m_qm; }
|
||||
unsynch_mpq_manager & qm() const override { return m_qm; }
|
||||
|
||||
virtual var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) {
|
||||
var mk_sum(mpz const & c, unsigned sz, mpz const * as, var const * xs) override {
|
||||
try {
|
||||
m_as.reserve(sz);
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
|
@ -241,7 +241,7 @@ namespace subpaving {
|
|||
}
|
||||
}
|
||||
|
||||
virtual ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) {
|
||||
ineq * mk_ineq(var x, mpq const & k, bool lower, bool open) override {
|
||||
try {
|
||||
typename context_fpoint::numeral_manager & m = this->m_ctx.nm();
|
||||
if (lower)
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
context_t<C>::node_selector(ctx) {
|
||||
}
|
||||
|
||||
virtual node * operator()(node * front, node * back) {
|
||||
node * operator()(node * front, node * back) override {
|
||||
return back;
|
||||
}
|
||||
};
|
||||
|
@ -80,7 +80,7 @@ public:
|
|||
}
|
||||
|
||||
// Return the next variable to branch.
|
||||
virtual var operator()(typename context_t<C>::node * n) {
|
||||
var operator()(typename context_t<C>::node * n) override {
|
||||
typename context_t<C>::numeral_manager & nm = this->ctx()->nm();
|
||||
SASSERT(this->ctx()->num_vars() > 0);
|
||||
var x = this->ctx()->splitting_var(n);
|
||||
|
@ -197,7 +197,7 @@ public:
|
|||
SASSERT(m_delta < INT_MAX);
|
||||
}
|
||||
|
||||
virtual void operator()(node * n, var x) {
|
||||
void operator()(node * n, var x) override {
|
||||
SASSERT(!n->inconsistent());
|
||||
numeral_manager & nm = this->ctx()->nm();
|
||||
node * left = this->mk_node(n);
|
||||
|
|
|
@ -40,7 +40,7 @@ class subpaving_tactic : public tactic {
|
|||
|
||||
ast_manager & m() const { return m_inv.get_manager(); }
|
||||
|
||||
virtual void operator()(std::ostream & out, subpaving::var x) const {
|
||||
void operator()(std::ostream & out, subpaving::var x) const override {
|
||||
expr * t = m_inv.get(x, 0);
|
||||
if (t != 0)
|
||||
out << mk_ismt2_pp(t, m());
|
||||
|
@ -216,36 +216,36 @@ public:
|
|||
m_params(p) {
|
||||
}
|
||||
|
||||
virtual ~subpaving_tactic() {
|
||||
~subpaving_tactic() override {
|
||||
dealloc(m_imp);
|
||||
}
|
||||
|
||||
virtual tactic * translate(ast_manager & m) {
|
||||
tactic * translate(ast_manager & m) override {
|
||||
return alloc(subpaving_tactic, m, m_params);
|
||||
}
|
||||
|
||||
virtual void updt_params(params_ref const & p) {
|
||||
void updt_params(params_ref const & p) override {
|
||||
m_params = p;
|
||||
m_imp->updt_params(p);
|
||||
}
|
||||
|
||||
virtual void collect_param_descrs(param_descrs & r) {
|
||||
void collect_param_descrs(param_descrs & r) override {
|
||||
m_imp->collect_param_descrs(r);
|
||||
}
|
||||
|
||||
virtual void collect_statistics(statistics & st) const {
|
||||
void collect_statistics(statistics & st) const override {
|
||||
st.copy(m_stats);
|
||||
}
|
||||
|
||||
virtual void reset_statistics() {
|
||||
void reset_statistics() override {
|
||||
m_stats.reset();
|
||||
}
|
||||
|
||||
virtual void operator()(goal_ref const & in,
|
||||
goal_ref_buffer & result,
|
||||
model_converter_ref & mc,
|
||||
proof_converter_ref & pc,
|
||||
expr_dependency_ref & core) {
|
||||
void operator()(goal_ref const & in,
|
||||
goal_ref_buffer & result,
|
||||
model_converter_ref & mc,
|
||||
proof_converter_ref & pc,
|
||||
expr_dependency_ref & core) override {
|
||||
try {
|
||||
m_imp->process(*in);
|
||||
m_imp->collect_statistics(m_stats);
|
||||
|
@ -261,7 +261,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void cleanup() {
|
||||
void cleanup() override {
|
||||
ast_manager & m = m_imp->m();
|
||||
dealloc(m_imp);
|
||||
m_imp = alloc(imp, m, m_params);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue