diff options
Diffstat (limited to 'libsolidity/NameAndTypeResolver.h')
-rw-r--r-- | libsolidity/NameAndTypeResolver.h | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/libsolidity/NameAndTypeResolver.h b/libsolidity/NameAndTypeResolver.h index 101787ea..d28671ed 100644 --- a/libsolidity/NameAndTypeResolver.h +++ b/libsolidity/NameAndTypeResolver.h @@ -25,9 +25,10 @@ #include <map> #include <list> #include <boost/noncopyable.hpp> - #include <libsolidity/DeclarationContainer.h> +#include <libsolidity/ReferencesResolver.h> #include <libsolidity/ASTVisitor.h> +#include <libsolidity/ASTAnnotations.h> namespace dev { @@ -42,13 +43,11 @@ namespace solidity class NameAndTypeResolver: private boost::noncopyable { public: - explicit NameAndTypeResolver(std::vector<Declaration const*> const& _globals); + NameAndTypeResolver(std::vector<Declaration const*> const& _globals); /// Registers all declarations found in the source unit. void registerDeclarations(SourceUnit& _sourceUnit); /// Resolves all names and types referenced from the given contract. void resolveNamesAndTypes(ContractDefinition& _contract); - /// Check all type requirements in the given contract. - void checkTypeRequirements(ContractDefinition& _contract); /// Updates the given global declaration (used for "this"). Not to be used with declarations /// that create their own scope. void updateDeclaration(Declaration const& _declaration); @@ -125,36 +124,5 @@ private: VariableScope* m_currentFunction; }; -/** - * Resolves references to declarations (of variables and types) and also establishes the link - * between a return statement and the return parameter list. - */ -class ReferencesResolver: private ASTVisitor -{ -public: - ReferencesResolver( - ASTNode& _root, - NameAndTypeResolver& _resolver, - ContractDefinition const* _currentContract, - ParameterList const* _returnParameters, - bool _resolveInsideCode = false, - bool _allowLazyTypes = true - ); - -private: - virtual void endVisit(VariableDeclaration& _variable) override; - virtual bool visit(Block&) override { return m_resolveInsideCode; } - virtual bool visit(Identifier& _identifier) override; - virtual bool visit(UserDefinedTypeName& _typeName) override; - virtual bool visit(Mapping&) override; - virtual bool visit(Return& _return) override; - - NameAndTypeResolver& m_resolver; - ContractDefinition const* m_currentContract; - ParameterList const* m_returnParameters; - bool m_resolveInsideCode; - bool m_allowLazyTypes; -}; - } } |