Skip to content

Commit 95fe44b

Browse files
authored
Merge pull request #3049 from tautschnig/fix-let-exprt
Remove let_exprt's default constructor
2 parents 3ee1309 + 1b8beed commit 95fe44b

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

src/solvers/smt2/smt2_conv.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4761,13 +4761,10 @@ exprt smt2_convt::letify_rec(
47614761
if(map.find(current)->second.count < LET_COUNT)
47624762
return letify_rec(expr, let_order, map, i+1);
47634763

4764-
let_exprt let;
4765-
4766-
let.symbol() = map.find(current)->second.let_symbol;
4767-
let.value() = substitute_let(current, map);
4768-
let.where() = letify_rec(expr, let_order, map, i+1);
4769-
4770-
return let;
4764+
return let_exprt(
4765+
map.find(current)->second.let_symbol,
4766+
substitute_let(current, map),
4767+
letify_rec(expr, let_order, map, i + 1));
47714768
}
47724769

47734770
void smt2_convt::collect_bindings(

src/solvers/smt2/smt2_parser.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,10 @@ exprt smt2_parsert::let_expression()
188188
// go backwards, build let_expr
189189
for(auto r_it=bindings.rbegin(); r_it!=bindings.rend(); r_it++)
190190
{
191-
let_exprt let;
192-
let.symbol()=symbol_exprt(r_it->first, r_it->second.type());
193-
let.value()=r_it->second;
194-
let.type()=result.type();
195-
let.where().swap(result);
191+
const let_exprt let(
192+
symbol_exprt(r_it->first, r_it->second.type()),
193+
r_it->second,
194+
result);
196195
result=let;
197196
}
198197

src/util/std_expr.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4520,13 +4520,15 @@ class infinity_exprt : public nullary_exprt
45204520
};
45214521

45224522
/// \brief A let expression
4523-
class let_exprt:public exprt
4523+
class let_exprt : public ternary_exprt
45244524
{
45254525
public:
4526-
let_exprt():exprt(ID_let)
4526+
let_exprt(
4527+
const symbol_exprt &symbol,
4528+
const exprt &value,
4529+
const exprt &where)
4530+
: ternary_exprt(ID_let, symbol, value, where, where.type())
45274531
{
4528-
operands().resize(3);
4529-
op0()=symbol_exprt();
45304532
}
45314533

45324534
symbol_exprt &symbol()

0 commit comments

Comments
 (0)