mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Support the external call option
This commit is contained in:
@@ -2590,6 +2590,16 @@ Expression const* SMTEncoder::innermostTuple(Expression const& _expr)
|
||||
return expr;
|
||||
}
|
||||
|
||||
pair<Expression const*, FunctionCallOptions const*> SMTEncoder::functionCallExpression(FunctionCall const& _funCall)
|
||||
{
|
||||
Expression const* callExpr = &_funCall.expression();
|
||||
auto const* callOptions = dynamic_cast<FunctionCallOptions const*>(callExpr);
|
||||
if (callOptions)
|
||||
callExpr = &callOptions->expression();
|
||||
|
||||
return {callExpr, callOptions};
|
||||
}
|
||||
|
||||
Expression const* SMTEncoder::cleanExpression(Expression const& _expr)
|
||||
{
|
||||
auto const* expr = &_expr;
|
||||
@@ -2713,7 +2723,8 @@ FunctionDefinition const* SMTEncoder::functionCallToDefinition(
|
||||
if (*_funCall.annotation().kind != FunctionCallKind::FunctionCall)
|
||||
return {};
|
||||
|
||||
Expression const* calledExpr = &_funCall.expression();
|
||||
auto [calledExpr, callOptions] = functionCallExpression(_funCall);
|
||||
|
||||
if (TupleExpression const* fun = dynamic_cast<TupleExpression const*>(calledExpr))
|
||||
{
|
||||
solAssert(fun->components().size() == 1, "");
|
||||
|
||||
Reference in New Issue
Block a user