mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Make FunctionCallAnnotation::kind a SetOnce
This commit is contained in:
@@ -337,8 +337,9 @@ void BMC::endVisit(UnaryOperation const& _op)
|
||||
|
||||
void BMC::endVisit(FunctionCall const& _funCall)
|
||||
{
|
||||
solAssert(_funCall.annotation().kind != FunctionCallKind::Unset, "");
|
||||
if (_funCall.annotation().kind != FunctionCallKind::FunctionCall)
|
||||
auto functionCallKind = *_funCall.annotation().kind;
|
||||
|
||||
if (functionCallKind != FunctionCallKind::FunctionCall)
|
||||
{
|
||||
SMTEncoder::endVisit(_funCall);
|
||||
return;
|
||||
|
||||
@@ -424,9 +424,9 @@ bool CHC::visit(ForStatement const& _for)
|
||||
|
||||
void CHC::endVisit(FunctionCall const& _funCall)
|
||||
{
|
||||
solAssert(_funCall.annotation().kind != FunctionCallKind::Unset, "");
|
||||
auto functionCallKind = *_funCall.annotation().kind;
|
||||
|
||||
if (_funCall.annotation().kind != FunctionCallKind::FunctionCall)
|
||||
if (functionCallKind != FunctionCallKind::FunctionCall)
|
||||
{
|
||||
SMTEncoder::endVisit(_funCall);
|
||||
return;
|
||||
|
||||
@@ -581,9 +581,10 @@ void SMTEncoder::endVisit(BinaryOperation const& _op)
|
||||
|
||||
void SMTEncoder::endVisit(FunctionCall const& _funCall)
|
||||
{
|
||||
solAssert(_funCall.annotation().kind != FunctionCallKind::Unset, "");
|
||||
auto functionCallKind = *_funCall.annotation().kind;
|
||||
|
||||
createExpr(_funCall);
|
||||
if (_funCall.annotation().kind == FunctionCallKind::StructConstructorCall)
|
||||
if (functionCallKind == FunctionCallKind::StructConstructorCall)
|
||||
{
|
||||
m_errorReporter.warning(
|
||||
4639_error,
|
||||
@@ -593,7 +594,7 @@ void SMTEncoder::endVisit(FunctionCall const& _funCall)
|
||||
return;
|
||||
}
|
||||
|
||||
if (_funCall.annotation().kind == FunctionCallKind::TypeConversion)
|
||||
if (functionCallKind == FunctionCallKind::TypeConversion)
|
||||
{
|
||||
visitTypeConversion(_funCall);
|
||||
return;
|
||||
@@ -753,7 +754,7 @@ void SMTEncoder::endVisit(ElementaryTypeNameExpression const& _typeName)
|
||||
|
||||
void SMTEncoder::visitTypeConversion(FunctionCall const& _funCall)
|
||||
{
|
||||
solAssert(_funCall.annotation().kind == FunctionCallKind::TypeConversion, "");
|
||||
solAssert(*_funCall.annotation().kind == FunctionCallKind::TypeConversion, "");
|
||||
solAssert(_funCall.arguments().size() == 1, "");
|
||||
auto argument = _funCall.arguments().front();
|
||||
unsigned argSize = argument->annotation().type->storageBytes();
|
||||
@@ -1948,7 +1949,7 @@ string SMTEncoder::extraComment()
|
||||
|
||||
FunctionDefinition const* SMTEncoder::functionCallToDefinition(FunctionCall const& _funCall)
|
||||
{
|
||||
if (_funCall.annotation().kind != FunctionCallKind::FunctionCall)
|
||||
if (*_funCall.annotation().kind != FunctionCallKind::FunctionCall)
|
||||
return nullptr;
|
||||
|
||||
FunctionDefinition const* funDef = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user