diff options
author | LianaHus <liana@ethdev.com> | 2015-10-15 02:37:41 +0800 |
---|---|---|
committer | LianaHus <liana@ethdev.com> | 2015-10-15 02:37:41 +0800 |
commit | c3491e446964f366101f28e3d51ab59dd9aaa5b2 (patch) | |
tree | 75a261126d7c0eb7919db32603aea44e5fe443ba /test/libsolidity/SolidityExpressionCompiler.cpp | |
parent | 8f7f22c5a6b1a71d7baff489b6425670550e8e8b (diff) | |
download | dexon-solidity-c3491e446964f366101f28e3d51ab59dd9aaa5b2.tar.gz dexon-solidity-c3491e446964f366101f28e3d51ab59dd9aaa5b2.tar.zst dexon-solidity-c3491e446964f366101f28e3d51ab59dd9aaa5b2.zip |
errors instead of exceptions
Conflicts:
libsolidity/CompilerStack.cpp
libsolidity/NameAndTypeResolver.cpp
libsolidity/NameAndTypeResolver.h
libsolidity/TypeChecker.cpp
test/libsolidity/SolidityNameAndTypeResolution.cpp
Diffstat (limited to 'test/libsolidity/SolidityExpressionCompiler.cpp')
-rw-r--r-- | test/libsolidity/SolidityExpressionCompiler.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/test/libsolidity/SolidityExpressionCompiler.cpp b/test/libsolidity/SolidityExpressionCompiler.cpp index 8134080e..4013581d 100644 --- a/test/libsolidity/SolidityExpressionCompiler.cpp +++ b/test/libsolidity/SolidityExpressionCompiler.cpp @@ -92,11 +92,13 @@ bytes compileFirstExpression( vector<shared_ptr<MagicVariableDeclaration const>> _globalDeclarations = {} ) { - Parser parser; ASTPointer<SourceUnit> sourceUnit; try { - sourceUnit = parser.parse(make_shared<Scanner>(CharStream(_sourceCode))); + ErrorList errors; + sourceUnit = Parser(errors).parse(make_shared<Scanner>(CharStream(_sourceCode))); + if (!sourceUnit) + return bytes(); } catch(boost::exception const& _e) { @@ -108,9 +110,9 @@ bytes compileFirstExpression( declarations.reserve(_globalDeclarations.size() + 1); for (ASTPointer<Declaration const> const& variable: _globalDeclarations) declarations.push_back(variable.get()); - /// TODO: - ErrorList errorList; - NameAndTypeResolver resolver(declarations, errorList); + + ErrorList errors; + NameAndTypeResolver resolver(declarations, errors); resolver.registerDeclarations(*sourceUnit); vector<ContractDefinition const*> inheritanceHierarchy; @@ -123,7 +125,7 @@ bytes compileFirstExpression( for (ASTPointer<ASTNode> const& node: sourceUnit->nodes()) if (ContractDefinition* contract = dynamic_cast<ContractDefinition*>(node.get())) { - TypeChecker typeChecker; + TypeChecker typeChecker(errors); BOOST_REQUIRE(typeChecker.checkTypeRequirements(*contract)); } for (ASTPointer<ASTNode> const& node: sourceUnit->nodes()) |