Skip to content

Commit 2561574

Browse files
committed
Refactor get_identifier as member function of decision procedure
This already reads large parts of the internal state, so the refactor cuts down on parameters passed and enables use of other member functions.
1 parent 5258eba commit 2561574

File tree

2 files changed

+6
-20
lines changed

2 files changed

+6
-20
lines changed

src/solvers/smt2_incremental/smt2_incremental_decision_procedure.cpp

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -343,13 +343,8 @@ exprt smt2_incremental_decision_proceduret::handle(const exprt &expr)
343343
return expr;
344344
}
345345

346-
static optionalt<smt_termt> get_identifier(
347-
const exprt &expr,
348-
const std::unordered_map<exprt, smt_identifier_termt, irep_hash>
349-
&expression_handle_identifiers,
350-
const std::unordered_map<exprt, smt_identifier_termt, irep_hash>
351-
&expression_identifiers,
352-
const namespacet &ns)
346+
optionalt<smt_termt>
347+
smt2_incremental_decision_proceduret::get_identifier(const exprt &expr) const
353348
{
354349
// Lookup the non-lowered form first.
355350
const auto handle_find_result = expression_handle_identifiers.find(expr);
@@ -457,23 +452,13 @@ exprt smt2_incremental_decision_proceduret::get(const exprt &expr) const
457452
auto descriptor = [&]() -> optionalt<smt_termt> {
458453
if(const auto index_expr = expr_try_dynamic_cast<index_exprt>(expr))
459454
{
460-
const auto array = get_identifier(
461-
index_expr->array(),
462-
expression_handle_identifiers,
463-
expression_identifiers,
464-
ns);
465-
const auto index = get_identifier(
466-
index_expr->index(),
467-
expression_handle_identifiers,
468-
expression_identifiers,
469-
ns);
455+
const auto array = get_identifier(index_expr->array());
456+
const auto index = get_identifier(index_expr->index());
470457
if(!array || !index)
471458
return {};
472459
return smt_array_theoryt::select(*array, *index);
473460
}
474-
if(
475-
auto identifier_descriptor = get_identifier(
476-
expr, expression_handle_identifiers, expression_identifiers, ns))
461+
if(auto identifier_descriptor = get_identifier(expr))
477462
{
478463
return identifier_descriptor;
479464
}

src/solvers/smt2_incremental/smt2_incremental_decision_procedure.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ class smt2_incremental_decision_proceduret final
9898
/// possible expression forms by expressing these in terms of the remaining
9999
/// language features.
100100
exprt lower(exprt expression);
101+
optionalt<smt_termt> get_identifier(const exprt &expr) const;
101102

102103
/// Namespace for looking up the expressions which symbol_exprts relate to.
103104
/// This includes the symbols defined outside of the decision procedure but

0 commit comments

Comments
 (0)