aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis/ConstantEvaluator.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-10-18 20:53:45 +0800
committerGitHub <noreply@github.com>2017-10-18 20:53:45 +0800
commit9cf6e910bd2b90d0c9415d9c257f85fe0c518de8 (patch)
tree6423baec5e26bbe174005c1a89d978cae15015d8 /libsolidity/analysis/ConstantEvaluator.cpp
parentbdeb9e52a2211510644fb53df93fb98258b40a65 (diff)
parentc85c41880ad1c996517b0ae14f98678b1e6c5613 (diff)
downloaddexon-solidity-9cf6e910bd2b90d0c9415d9c257f85fe0c518de8.tar
dexon-solidity-9cf6e910bd2b90d0c9415d9c257f85fe0c518de8.tar.gz
dexon-solidity-9cf6e910bd2b90d0c9415d9c257f85fe0c518de8.tar.bz2
dexon-solidity-9cf6e910bd2b90d0c9415d9c257f85fe0c518de8.tar.lz
dexon-solidity-9cf6e910bd2b90d0c9415d9c257f85fe0c518de8.tar.xz
dexon-solidity-9cf6e910bd2b90d0c9415d9c257f85fe0c518de8.tar.zst
dexon-solidity-9cf6e910bd2b90d0c9415d9c257f85fe0c518de8.zip
Merge pull request #3099 from ethereum/develop
Merge develop into release for 0.4.18.
Diffstat (limited to 'libsolidity/analysis/ConstantEvaluator.cpp')
-rw-r--r--libsolidity/analysis/ConstantEvaluator.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/libsolidity/analysis/ConstantEvaluator.cpp b/libsolidity/analysis/ConstantEvaluator.cpp
index 7057eab7..6636ad97 100644
--- a/libsolidity/analysis/ConstantEvaluator.cpp
+++ b/libsolidity/analysis/ConstantEvaluator.cpp
@@ -22,17 +22,17 @@
#include <libsolidity/analysis/ConstantEvaluator.h>
#include <libsolidity/ast/AST.h>
+#include <libsolidity/interface/ErrorReporter.h>
using namespace std;
using namespace dev;
using namespace dev::solidity;
-
void ConstantEvaluator::endVisit(UnaryOperation const& _operation)
{
TypePointer const& subType = _operation.subExpression().annotation().type;
if (!dynamic_cast<RationalNumberType const*>(subType.get()))
- BOOST_THROW_EXCEPTION(_operation.subExpression().createTypeError("Invalid constant expression."));
+ m_errorReporter.fatalTypeError(_operation.subExpression().location(), "Invalid constant expression.");
TypePointer t = subType->unaryOperatorResult(_operation.getOperator());
_operation.annotation().type = t;
}
@@ -42,9 +42,9 @@ void ConstantEvaluator::endVisit(BinaryOperation const& _operation)
TypePointer const& leftType = _operation.leftExpression().annotation().type;
TypePointer const& rightType = _operation.rightExpression().annotation().type;
if (!dynamic_cast<RationalNumberType const*>(leftType.get()))
- BOOST_THROW_EXCEPTION(_operation.leftExpression().createTypeError("Invalid constant expression."));
+ m_errorReporter.fatalTypeError(_operation.leftExpression().location(), "Invalid constant expression.");
if (!dynamic_cast<RationalNumberType const*>(rightType.get()))
- BOOST_THROW_EXCEPTION(_operation.rightExpression().createTypeError("Invalid constant expression."));
+ m_errorReporter.fatalTypeError(_operation.rightExpression().location(), "Invalid constant expression.");
TypePointer commonType = leftType->binaryOperatorResult(_operation.getOperator(), rightType);
if (Token::isCompareOp(_operation.getOperator()))
commonType = make_shared<BoolType>();
@@ -55,5 +55,5 @@ void ConstantEvaluator::endVisit(Literal const& _literal)
{
_literal.annotation().type = Type::forLiteral(_literal);
if (!_literal.annotation().type)
- BOOST_THROW_EXCEPTION(_literal.createTypeError("Invalid literal value."));
+ m_errorReporter.fatalTypeError(_literal.location(), "Invalid literal value.");
}