aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis/ReferencesResolver.h
diff options
context:
space:
mode:
authorGav Wood <i@gavwood.com>2015-11-23 19:44:41 +0800
committerGav Wood <i@gavwood.com>2015-11-23 19:44:41 +0800
commit4a1b22f043496869862905598f99296ff3cde263 (patch)
tree3a3639713c76c95f33f432bb00bbba2842682557 /libsolidity/analysis/ReferencesResolver.h
parentbff172cf656843dd0f05def1f920be3d98df9640 (diff)
parent2554d6104a491e586ecad9cf7fe31949dc46e968 (diff)
downloaddexon-solidity-4a1b22f043496869862905598f99296ff3cde263.tar
dexon-solidity-4a1b22f043496869862905598f99296ff3cde263.tar.gz
dexon-solidity-4a1b22f043496869862905598f99296ff3cde263.tar.bz2
dexon-solidity-4a1b22f043496869862905598f99296ff3cde263.tar.lz
dexon-solidity-4a1b22f043496869862905598f99296ff3cde263.tar.xz
dexon-solidity-4a1b22f043496869862905598f99296ff3cde263.tar.zst
dexon-solidity-4a1b22f043496869862905598f99296ff3cde263.zip
Merge remote-tracking branch 'orig/develop' into hot_gav
Diffstat (limited to 'libsolidity/analysis/ReferencesResolver.h')
-rw-r--r--libsolidity/analysis/ReferencesResolver.h29
1 files changed, 26 insertions, 3 deletions
diff --git a/libsolidity/analysis/ReferencesResolver.h b/libsolidity/analysis/ReferencesResolver.h
index 4276adaa..21cb1d35 100644
--- a/libsolidity/analysis/ReferencesResolver.h
+++ b/libsolidity/analysis/ReferencesResolver.h
@@ -43,12 +43,21 @@ class ReferencesResolver: private ASTConstVisitor
{
public:
ReferencesResolver(
- ASTNode& _root,
+ ErrorList& _errors,
NameAndTypeResolver& _resolver,
ContractDefinition const* _currentContract,
ParameterList const* _returnParameters,
bool _resolveInsideCode = false
- );
+ ):
+ m_errors(_errors),
+ m_resolver(_resolver),
+ m_currentContract(_currentContract),
+ m_returnParameters(_returnParameters),
+ m_resolveInsideCode(_resolveInsideCode)
+ {}
+
+ /// @returns true if no errors during resolving
+ bool resolve(ASTNode& _root);
private:
virtual bool visit(Block const&) override { return m_resolveInsideCode; }
@@ -59,10 +68,24 @@ private:
TypePointer typeFor(TypeName const& _typeName);
+ /// Adds a new error to the list of errors.
+ void typeError(SourceLocation const& _location, std::string const& _description);
+
+ /// Adds a new error to the list of errors and throws to abort type checking.
+ void fatalTypeError(SourceLocation const& _location, std::string const& _description);
+
+ /// Adds a new error to the list of errors.
+ void declarationError(const SourceLocation& _location, std::string const& _description);
+
+ /// Adds a new error to the list of errors and throws to abort type checking.
+ void fatalDeclarationError(const SourceLocation& _location, std::string const& _description);
+
+ ErrorList& m_errors;
NameAndTypeResolver& m_resolver;
ContractDefinition const* m_currentContract;
ParameterList const* m_returnParameters;
- bool m_resolveInsideCode;
+ bool const m_resolveInsideCode;
+ bool m_errorOccurred = false;
};
}