[SMTChecker] Do not visit the name of a modifier invocation

This commit is contained in:
Leonardo Alt
2019-11-27 22:34:33 +01:00
parent d207ae5dc7
commit 240ff30878
3 changed files with 28 additions and 3 deletions
+10 -3
View File
@@ -537,6 +537,15 @@ void SMTEncoder::endVisit(FunctionCall const& _funCall)
}
}
bool SMTEncoder::visit(ModifierInvocation const& _node)
{
if (auto const* args = _node.arguments())
for (auto const& arg: *args)
if (arg)
arg->accept(*this);
return false;
}
void SMTEncoder::initContract(ContractDefinition const& _contract)
{
solAssert(m_currentContract == nullptr, "");
@@ -605,9 +614,7 @@ void SMTEncoder::endVisit(Identifier const& _identifier)
defineExpr(_identifier, m_context.thisAddress());
m_uninterpretedTerms.insert(&_identifier);
}
else if (
_identifier.annotation().type->category() != Type::Category::Modifier
)
else
createExpr(_identifier);
}
+1
View File
@@ -82,6 +82,7 @@ protected:
bool visit(BinaryOperation const& _node) override;
void endVisit(BinaryOperation const& _node) override;
void endVisit(FunctionCall const& _node) override;
bool visit(ModifierInvocation const& _node) override;
void endVisit(Identifier const& _node) override;
void endVisit(ElementaryTypeNameExpression const& _node) override;
void endVisit(Literal const& _node) override;