mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Make all lookups recursive by default.
This commit is contained in:
parent
9c31a0d8f5
commit
53289e15a2
@ -159,15 +159,15 @@ vector<Declaration const*> NameAndTypeResolver::resolveName(ASTString const& _na
|
||||
return iterator->second->resolveName(_name, false);
|
||||
}
|
||||
|
||||
vector<Declaration const*> NameAndTypeResolver::nameFromCurrentScope(ASTString const& _name, bool _recursive) const
|
||||
vector<Declaration const*> NameAndTypeResolver::nameFromCurrentScope(ASTString const& _name) const
|
||||
{
|
||||
return m_currentScope->resolveName(_name, _recursive);
|
||||
return m_currentScope->resolveName(_name, true);
|
||||
}
|
||||
|
||||
Declaration const* NameAndTypeResolver::pathFromCurrentScope(vector<ASTString> const& _path, bool _recursive) const
|
||||
Declaration const* NameAndTypeResolver::pathFromCurrentScope(vector<ASTString> const& _path) const
|
||||
{
|
||||
solAssert(!_path.empty(), "");
|
||||
vector<Declaration const*> candidates = m_currentScope->resolveName(_path.front(), _recursive);
|
||||
vector<Declaration const*> candidates = m_currentScope->resolveName(_path.front(), true);
|
||||
for (size_t i = 1; i < _path.size() && candidates.size() == 1; i++)
|
||||
{
|
||||
if (!m_scopes.count(candidates.front()))
|
||||
|
@ -73,16 +73,17 @@ public:
|
||||
/// Resolves the given @a _name inside the scope @a _scope. If @a _scope is omitted,
|
||||
/// the global scope is used (i.e. the one containing only the pre-defined global variables).
|
||||
/// @returns a pointer to the declaration on success or nullptr on failure.
|
||||
/// SHOULD only be used for testing.
|
||||
std::vector<Declaration const*> resolveName(ASTString const& _name, ASTNode const* _scope = nullptr) const;
|
||||
|
||||
/// Resolves a name in the "current" scope. Should only be called during the initial
|
||||
/// resolving phase.
|
||||
std::vector<Declaration const*> nameFromCurrentScope(ASTString const& _name, bool _recursive = true) const;
|
||||
/// Resolves a name in the "current" scope, but also searches parent scopes.
|
||||
/// Should only be called during the initial resolving phase.
|
||||
std::vector<Declaration const*> nameFromCurrentScope(ASTString const& _name) const;
|
||||
|
||||
/// Resolves a path starting from the "current" scope. Should only be called during the initial
|
||||
/// resolving phase.
|
||||
/// Resolves a path starting from the "current" scope, but also searches parent scopes.
|
||||
/// Should only be called during the initial resolving phase.
|
||||
/// @note Returns a null pointer if any component in the path was not unique or not found.
|
||||
Declaration const* pathFromCurrentScope(std::vector<ASTString> const& _path, bool _recursive = true) const;
|
||||
Declaration const* pathFromCurrentScope(std::vector<ASTString> const& _path) const;
|
||||
|
||||
/// returns the vector of declarations without repetitions
|
||||
std::vector<Declaration const*> cleanedDeclarations(
|
||||
|
Loading…
Reference in New Issue
Block a user