diff options
Diffstat (limited to 'libsolidity/ReferencesResolver.cpp')
-rw-r--r-- | libsolidity/ReferencesResolver.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/libsolidity/ReferencesResolver.cpp b/libsolidity/ReferencesResolver.cpp index f60ca1af..32c1728f 100644 --- a/libsolidity/ReferencesResolver.cpp +++ b/libsolidity/ReferencesResolver.cpp @@ -54,20 +54,13 @@ bool ReferencesResolver::visit(Return const& _return) bool ReferencesResolver::visit(UserDefinedTypeName const& _typeName) { - auto declarations = m_resolver.nameFromCurrentScope(_typeName.name()); - if (declarations.empty()) - BOOST_THROW_EXCEPTION( - DeclarationError() << - errinfo_sourceLocation(_typeName.location()) << - errinfo_comment("Undeclared identifier.") - ); - else if (declarations.size() > 1) + Declaration const* declaration = m_resolver.pathFromCurrentScope(_typeName.namePath()); + if (!declaration) BOOST_THROW_EXCEPTION( DeclarationError() << errinfo_sourceLocation(_typeName.location()) << - errinfo_comment("Duplicate identifier.") + errinfo_comment("Identifier not found or not unique.") ); - Declaration const* declaration = *declarations.begin(); _typeName.annotation().referencedDeclaration = declaration; return true; } |