MCPcopy Create free account
hub / github.com/argotorg/solidity / resolveName

Method resolveName

libsolidity/analysis/DeclarationContainer.cpp:144–172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

142}
143
144std::vector<Declaration const*> DeclarationContainer::resolveName(
145 ASTString const& _name,
146 ResolvingSettings _settings
147) const
148{
149 solAssert(!_name.empty(), "Attempt to resolve empty name.");
150 std::vector<Declaration const*> result;
151
152 if (m_declarations.count(_name))
153 {
154 if (_settings.onlyVisibleAsUnqualifiedNames)
155 result += m_declarations.at(_name) | ranges::views::filter(&Declaration::isVisibleAsUnqualifiedName) | ranges::to_vector;
156 else
157 result += m_declarations.at(_name);
158 }
159
160 if (_settings.alsoInvisible && m_invisibleDeclarations.count(_name))
161 {
162 if (_settings.onlyVisibleAsUnqualifiedNames)
163 result += m_invisibleDeclarations.at(_name) | ranges::views::filter(&Declaration::isVisibleAsUnqualifiedName) | ranges::to_vector;
164 else
165 result += m_invisibleDeclarations.at(_name);
166 }
167
168 if (result.empty() && _settings.recursive && m_enclosingContainer)
169 result = m_enclosingContainer->resolveName(_name, _settings);
170
171 return result;
172}
173
174std::vector<ASTString> DeclarationContainer::similarNames(ASTString const& _name) const
175{

Callers 1

populateHomonymsMethod · 0.45

Calls 4

filterFunction · 0.85
atMethod · 0.80
emptyMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected