mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Add AST Node IdentifierPath
This commit is contained in:
@@ -219,7 +219,7 @@ struct OverrideSpecifierChecker: public PostTypeChecker::Checker
|
||||
{
|
||||
for (ASTPointer<UserDefinedTypeName> const& override: _overrideSpecifier.overrides())
|
||||
{
|
||||
Declaration const* decl = override->annotation().referencedDeclaration;
|
||||
Declaration const* decl = override->annotation().referencedDeclaration;
|
||||
solAssert(decl, "Expected declaration to be resolved.");
|
||||
|
||||
if (dynamic_cast<ContractDefinition const*>(decl))
|
||||
|
||||
@@ -171,16 +171,21 @@ void ReferencesResolver::endVisit(ModifierDefinition const&)
|
||||
m_returnParameters.pop_back();
|
||||
}
|
||||
|
||||
void ReferencesResolver::endVisit(UserDefinedTypeName const& _typeName)
|
||||
void ReferencesResolver::endVisit(IdentifierPath const& _path)
|
||||
{
|
||||
Declaration const* declaration = m_resolver.pathFromCurrentScope(_typeName.namePath());
|
||||
Declaration const* declaration = m_resolver.pathFromCurrentScope(_path.path());
|
||||
if (!declaration)
|
||||
{
|
||||
m_errorReporter.fatalDeclarationError(7920_error, _typeName.location(), "Identifier not found or not unique.");
|
||||
m_errorReporter.fatalDeclarationError(7920_error, _path.location(), "Identifier not found or not unique.");
|
||||
return;
|
||||
}
|
||||
|
||||
_typeName.annotation().referencedDeclaration = declaration;
|
||||
_path.annotation().referencedDeclaration = declaration;
|
||||
}
|
||||
|
||||
void ReferencesResolver::endVisit(UserDefinedTypeName const& _typeName)
|
||||
{
|
||||
_typeName.annotation().referencedDeclaration = _typeName.pathNode()->annotation().referencedDeclaration;
|
||||
}
|
||||
|
||||
bool ReferencesResolver::visit(InlineAssembly const& _inlineAssembly)
|
||||
|
||||
@@ -82,6 +82,7 @@ private:
|
||||
void endVisit(FunctionDefinition const& _functionDefinition) override;
|
||||
bool visit(ModifierDefinition const& _modifierDefinition) override;
|
||||
void endVisit(ModifierDefinition const& _modifierDefinition) override;
|
||||
void endVisit(IdentifierPath const& _typeName) override;
|
||||
void endVisit(UserDefinedTypeName const& _typeName) override;
|
||||
bool visit(InlineAssembly const& _inlineAssembly) override;
|
||||
bool visit(Return const& _return) override;
|
||||
|
||||
Reference in New Issue
Block a user