aboutsummaryrefslogtreecommitdiffstats
path: root/NameAndTypeResolver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'NameAndTypeResolver.cpp')
-rw-r--r--NameAndTypeResolver.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/NameAndTypeResolver.cpp b/NameAndTypeResolver.cpp
index ac841fcc..21b33292 100644
--- a/NameAndTypeResolver.cpp
+++ b/NameAndTypeResolver.cpp
@@ -130,12 +130,14 @@ vector<Declaration const*> NameAndTypeResolver::getNameFromCurrentScope(ASTStrin
return m_currentScope->resolveName(_name, _recursive);
}
-vector<Declaration const*> NameAndTypeResolver::cleanupedDeclarations(Identifier const& _identifier)
+vector<Declaration const*> NameAndTypeResolver::cleanupedDeclarations(
+ Identifier const& _identifier,
+ vector<Declaration const*> const& _declarations
+)
{
vector<Declaration const*> uniqueFunctions;
- auto declarations = m_currentScope->resolveName(_identifier.getName());
- for (auto it = declarations.begin(); it != declarations.end(); ++it)
+ for (auto it = _declarations.begin(); it != _declarations.end(); ++it)
{
solAssert(*it, "");
// the declaration is functionDefinition while declarations > 1
@@ -480,7 +482,7 @@ bool ReferencesResolver::visit(Identifier& _identifier)
else if (declarations.size() == 1)
_identifier.setReferencedDeclaration(*declarations.front(), m_currentContract);
else
- _identifier.setOverloadedDeclarations(m_resolver.cleanupedDeclarations(_identifier));
+ _identifier.setOverloadedDeclarations(m_resolver.cleanupedDeclarations(_identifier, declarations));
return false;
}