diff options
author | LianaHus <liana@ethdev.com> | 2015-10-16 00:15:52 +0800 |
---|---|---|
committer | LianaHus <liana@ethdev.com> | 2015-10-16 00:15:52 +0800 |
commit | ec5b9c2e92959b28d4f7f74245fac0c42ae82314 (patch) | |
tree | d5de347b0183b0bcf38c2c7a40989dadce4a0b40 /libsolidity | |
parent | b2e787b803ffc4a3f13b8578f7029543bd665aed (diff) | |
download | dexon-solidity-ec5b9c2e92959b28d4f7f74245fac0c42ae82314.tar dexon-solidity-ec5b9c2e92959b28d4f7f74245fac0c42ae82314.tar.gz dexon-solidity-ec5b9c2e92959b28d4f7f74245fac0c42ae82314.tar.bz2 dexon-solidity-ec5b9c2e92959b28d4f7f74245fac0c42ae82314.tar.lz dexon-solidity-ec5b9c2e92959b28d4f7f74245fac0c42ae82314.tar.xz dexon-solidity-ec5b9c2e92959b28d4f7f74245fac0c42ae82314.tar.zst dexon-solidity-ec5b9c2e92959b28d4f7f74245fac0c42ae82314.zip |
changed the way of reporting error during contract checking
Diffstat (limited to 'libsolidity')
-rw-r--r-- | libsolidity/CompilerStack.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/libsolidity/CompilerStack.cpp b/libsolidity/CompilerStack.cpp index 1165d6f6..12e49b58 100644 --- a/libsolidity/CompilerStack.cpp +++ b/libsolidity/CompilerStack.cpp @@ -113,7 +113,6 @@ bool CompilerStack::parse() resolveImports(); m_globalContext = make_shared<GlobalContext>(); - bool success = true; NameAndTypeResolver resolver(m_globalContext->declarations(), m_errors); for (Source const* source: m_sourceOrder) if (!resolver.registerDeclarations(*source->ast)) @@ -124,17 +123,12 @@ bool CompilerStack::parse() if (ContractDefinition* contract = dynamic_cast<ContractDefinition*>(node.get())) { m_globalContext->setCurrentContract(*contract); - success = success && resolver.updateDeclaration(*m_globalContext->currentThis()); - success = success && resolver.updateDeclaration(*m_globalContext->currentSuper()); - success = success && resolver.resolveNamesAndTypes(*contract); + if (!resolver.updateDeclaration(*m_globalContext->currentThis())) return false; + if (!resolver.updateDeclaration(*m_globalContext->currentSuper())) return false; + if (!resolver.resolveNamesAndTypes(*contract)) return false; m_contracts[contract->name()].contract = contract; } - if (!success) - { - m_parseSuccessful = false; - return m_parseSuccessful; - } InterfaceHandler interfaceHandler; bool typesFine = true; for (Source const* source: m_sourceOrder) |