aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/formal/Z3Interface.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-04-20 01:24:01 +0800
committerGitHub <noreply@github.com>2018-04-20 01:24:01 +0800
commit124ca40dc525a987a88176c6e5170978e82fa290 (patch)
treeb1c1da8a9a6ba886bb43f115328a18222f59553d /libsolidity/formal/Z3Interface.cpp
parent4cb486ee993cadde5564fb6c611d2bcf4fc44414 (diff)
parent7fb431ad7d0f7667c83d3f9b2350c3a1cef73b9e (diff)
downloaddexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.gz
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.bz2
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.lz
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.xz
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.tar.zst
dexon-solidity-124ca40dc525a987a88176c6e5170978e82fa290.zip
Merge pull request #3950 from ethereum/develop
Merge develop into release for 0.4.23
Diffstat (limited to 'libsolidity/formal/Z3Interface.cpp')
-rw-r--r--libsolidity/formal/Z3Interface.cpp17
1 files changed, 1 insertions, 16 deletions
diff --git a/libsolidity/formal/Z3Interface.cpp b/libsolidity/formal/Z3Interface.cpp
index 125da00d..41943c92 100644
--- a/libsolidity/formal/Z3Interface.cpp
+++ b/libsolidity/formal/Z3Interface.cpp
@@ -116,21 +116,6 @@ z3::expr Z3Interface::toZ3Expr(Expression const& _expr)
for (auto const& arg: _expr.arguments)
arguments.push_back(toZ3Expr(arg));
- static map<string, unsigned> arity{
- {"ite", 3},
- {"not", 1},
- {"and", 2},
- {"or", 2},
- {"=", 2},
- {"<", 2},
- {"<=", 2},
- {">", 2},
- {">=", 2},
- {"+", 2},
- {"-", 2},
- {"*", 2},
- {"/", 2}
- };
string const& n = _expr.name;
if (m_functions.count(n))
return m_functions.at(n)(arguments);
@@ -150,7 +135,7 @@ z3::expr Z3Interface::toZ3Expr(Expression const& _expr)
return m_context.int_val(n.c_str());
}
- solAssert(arity.count(n) && arity.at(n) == arguments.size(), "");
+ solAssert(_expr.hasCorrectArity(), "");
if (n == "ite")
return z3::ite(arguments[0], arguments[1], arguments[2]);
else if (n == "not")