3
0
Fork 0
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:
Bruce Mitchener 2018-02-10 09:15:12 +07:00
parent ce123d9dbc
commit 7167fda1dc
220 changed files with 2546 additions and 2548 deletions

View file

@ -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();

View file

@ -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;
}

View file

@ -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

View file

@ -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) {

View file

@ -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())) {

View file

@ -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);
}
};

View file

@ -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)

View file

@ -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);

View file

@ -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);