Skip to content

Commit 8a885f0

Browse files
committed
add non-const to_binding_expr
This adds a non-const variant of to_binding_expr.
1 parent 65c42a3 commit 8a885f0

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/util/std_expr.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3096,6 +3096,21 @@ inline const binding_exprt &to_binding_expr(const exprt &expr)
30963096
return ret;
30973097
}
30983098

3099+
/// \brief Cast an exprt to a \ref binding_exprt
3100+
///
3101+
/// \a expr must be known to be \ref binding_exprt.
3102+
///
3103+
/// \param expr: Source expression
3104+
/// \return Object of type \ref binding_exprt
3105+
inline binding_exprt &to_binding_expr(exprt &expr)
3106+
{
3107+
PRECONDITION(
3108+
expr.id() == ID_forall || expr.id() == ID_exists || expr.id() == ID_lambda);
3109+
binding_exprt &ret = static_cast<binding_exprt &>(expr);
3110+
validate_expr(ret);
3111+
return ret;
3112+
}
3113+
30993114
/// \brief A let expression
31003115
class let_exprt : public binary_exprt
31013116
{

0 commit comments

Comments
 (0)