mirror of
https://github.com/Z3Prover/z3
synced 2025-06-11 00:23:25 +00:00
Make ast_manager::get_family_id(symbol const &) side-effect free. The version with side-effects is now called ast_manager::mk_family_id
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
3ddb1a85f1
commit
d92efeb0c5
56 changed files with 127 additions and 108 deletions
|
@ -137,7 +137,7 @@ void display_parameters(std::ostream & out, unsigned n, parameter const * p) {
|
|||
//
|
||||
// -----------------------------------
|
||||
|
||||
family_id family_manager::get_family_id(symbol const & s) {
|
||||
family_id family_manager::mk_family_id(symbol const & s) {
|
||||
family_id r;
|
||||
if (m_families.find(s, r)) {
|
||||
return r;
|
||||
|
@ -149,7 +149,15 @@ family_id family_manager::get_family_id(symbol const & s) {
|
|||
return r;
|
||||
}
|
||||
|
||||
bool family_manager::has_family(symbol const & s) {
|
||||
family_id family_manager::get_family_id(symbol const & s) const {
|
||||
family_id r;
|
||||
if (m_families.find(s, r))
|
||||
return r;
|
||||
else
|
||||
return null_family_id;
|
||||
}
|
||||
|
||||
bool family_manager::has_family(symbol const & s) const {
|
||||
return m_families.contains(s);
|
||||
}
|
||||
|
||||
|
@ -1297,12 +1305,12 @@ void ast_manager::init() {
|
|||
m_expr_id_gen.reset(0);
|
||||
m_decl_id_gen.reset(c_first_decl_id);
|
||||
m_some_value_proc = 0;
|
||||
m_basic_family_id = get_family_id("basic");
|
||||
m_label_family_id = get_family_id("label");
|
||||
m_pattern_family_id = get_family_id("pattern");
|
||||
m_model_value_family_id = get_family_id("model-value");
|
||||
m_user_sort_family_id = get_family_id("user-sort");
|
||||
m_arith_family_id = get_family_id("arith");
|
||||
m_basic_family_id = mk_family_id("basic");
|
||||
m_label_family_id = mk_family_id("label");
|
||||
m_pattern_family_id = mk_family_id("pattern");
|
||||
m_model_value_family_id = mk_family_id("model-value");
|
||||
m_user_sort_family_id = mk_family_id("user-sort");
|
||||
m_arith_family_id = mk_family_id("arith");
|
||||
basic_decl_plugin * plugin = alloc(basic_decl_plugin);
|
||||
register_plugin(m_basic_family_id, plugin);
|
||||
m_bool_sort = plugin->mk_bool_sort();
|
||||
|
@ -1435,7 +1443,7 @@ void ast_manager::copy_families_plugins(ast_manager const & from) {
|
|||
<< ", target has_family: " << m_family_manager.has_family(fid) << "\n";
|
||||
if (m_family_manager.has_family(fid)) tout << get_family_id(fid_name) << "\n";);
|
||||
if (!m_family_manager.has_family(fid)) {
|
||||
family_id new_fid = get_family_id(fid_name);
|
||||
family_id new_fid = mk_family_id(fid_name);
|
||||
TRACE("copy_families_plugins", tout << "new target fid created: " << new_fid << " fid_name: " << fid_name << "\n";);
|
||||
}
|
||||
TRACE("copy_families_plugins", tout << "target fid: " << get_family_id(fid_name) << "\n";);
|
||||
|
@ -1472,7 +1480,7 @@ void ast_manager::set_next_expr_id(unsigned id) {
|
|||
unsigned ast_manager::get_node_size(ast const * n) { return ::get_node_size(n); }
|
||||
|
||||
void ast_manager::register_plugin(symbol const & s, decl_plugin * plugin) {
|
||||
family_id id = m_family_manager.get_family_id(s);
|
||||
family_id id = m_family_manager.mk_family_id(s);
|
||||
SASSERT(is_format_manager() || s != symbol("format"));
|
||||
register_plugin(id, plugin);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue