aboutsummaryrefslogtreecommitdiffstats
path: root/libjulia/backends/evm/EVMCodeTransform.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-05-30 22:45:36 +0800
committerGitHub <noreply@github.com>2017-05-30 22:45:36 +0800
commit254b55728f66ea164e9085700a294ac4837f2029 (patch)
treea4c464d4d40baaa260f071c1028f347bd287e44d /libjulia/backends/evm/EVMCodeTransform.cpp
parent0066a08aa8f6c469cde7947ec50ca662a32123a0 (diff)
parent89b60ffbd4c2dde26fa5e9f1d750729b5c89373e (diff)
downloaddexon-solidity-254b55728f66ea164e9085700a294ac4837f2029.tar
dexon-solidity-254b55728f66ea164e9085700a294ac4837f2029.tar.gz
dexon-solidity-254b55728f66ea164e9085700a294ac4837f2029.tar.bz2
dexon-solidity-254b55728f66ea164e9085700a294ac4837f2029.tar.lz
dexon-solidity-254b55728f66ea164e9085700a294ac4837f2029.tar.xz
dexon-solidity-254b55728f66ea164e9085700a294ac4837f2029.tar.zst
dexon-solidity-254b55728f66ea164e9085700a294ac4837f2029.zip
Merge pull request #2264 from roadriverrail/refactor_error_log
Refactor error reporting
Diffstat (limited to 'libjulia/backends/evm/EVMCodeTransform.cpp')
-rw-r--r--libjulia/backends/evm/EVMCodeTransform.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/libjulia/backends/evm/EVMCodeTransform.cpp b/libjulia/backends/evm/EVMCodeTransform.cpp
index 18c3e63c..355a9595 100644
--- a/libjulia/backends/evm/EVMCodeTransform.cpp
+++ b/libjulia/backends/evm/EVMCodeTransform.cpp
@@ -32,14 +32,14 @@ using namespace dev::solidity;
using namespace dev::solidity::assembly;
CodeTransform::CodeTransform(
- ErrorList& _errors,
+ ErrorReporter& _errorReporter,
AbstractAssembly& _assembly,
Block const& _block,
AsmAnalysisInfo& _analysisInfo,
ExternalIdentifierAccess const& _identifierAccess,
int _initialStackHeight
):
- m_errors(_errors),
+ m_errorReporter(_errorReporter),
m_assembly(_assembly),
m_info(_analysisInfo),
m_scope(*_analysisInfo.scopes.at(&_block)),
@@ -91,11 +91,10 @@ int CodeTransform::variableHeightDiff(solidity::assembly::Scope::Variable const&
if (heightDiff <= (_forSwap ? 1 : 0) || heightDiff > (_forSwap ? 17 : 16))
{
//@TODO move this to analysis phase.
- m_errors.push_back(make_shared<Error>(
- Error::Type::TypeError,
- "Variable inaccessible, too deep inside stack (" + boost::lexical_cast<string>(heightDiff) + ")",
- _location
- ));
+ m_errorReporter.typeError(
+ _location,
+ "Variable inaccessible, too deep inside stack (" + boost::lexical_cast<string>(heightDiff) + ")"
+ );
return 0;
}
else
@@ -124,7 +123,7 @@ void CodeTransform::assignLabelIdIfUnset(Scope::Label& _label)
void CodeTransform::operator()(Block const& _block)
{
- CodeTransform(m_errors, m_assembly, _block, m_info, m_identifierAccess, m_initialStackHeight);
+ CodeTransform(m_errorReporter, m_assembly, _block, m_info, m_identifierAccess, m_initialStackHeight);
checkStackHeight(&_block);
}