aboutsummaryrefslogtreecommitdiffstats
path: root/test/libjulia/Simplifier.cpp
diff options
context:
space:
mode:
authorLeo Arias <yo@elopio.net>2018-08-09 11:42:38 +0800
committerLeo Arias <yo@elopio.net>2018-08-09 11:46:22 +0800
commit1395bef7aeee20a5aaa0b5fd9ac0e64abaa5af11 (patch)
treec7cc3399d3ec6de0e8a138456a4f7d2f59f7344e /test/libjulia/Simplifier.cpp
parent711e2b7cff671141009877423fad605627f95e30 (diff)
downloaddexon-solidity-1395bef7aeee20a5aaa0b5fd9ac0e64abaa5af11.tar.gz
dexon-solidity-1395bef7aeee20a5aaa0b5fd9ac0e64abaa5af11.tar.zst
dexon-solidity-1395bef7aeee20a5aaa0b5fd9ac0e64abaa5af11.zip
tests: add yul simplifier not applied with function calls
Diffstat (limited to 'test/libjulia/Simplifier.cpp')
-rw-r--r--test/libjulia/Simplifier.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/test/libjulia/Simplifier.cpp b/test/libjulia/Simplifier.cpp
index e5b7e0d8..3cc95b7a 100644
--- a/test/libjulia/Simplifier.cpp
+++ b/test/libjulia/Simplifier.cpp
@@ -139,7 +139,7 @@ BOOST_AUTO_TEST_CASE(mod_and)
);
}
-BOOST_AUTO_TEST_CASE(not_applied)
+BOOST_AUTO_TEST_CASE(not_applied_removes_non_constant_and_not_movable)
{
CHECK(
// The first argument of div is not constant.
@@ -149,4 +149,30 @@ BOOST_AUTO_TEST_CASE(not_applied)
);
}
+BOOST_AUTO_TEST_CASE(not_applied_function_call_different_names)
+{
+ CHECK(
+ "{ function f1() -> a { } function f2() -> b {} let c := sub(f1(), f2()) }",
+ "{ function f1() -> a { } function f2() -> b {} let c := sub(f1(), f2()) }"
+ );
+}
+
+BOOST_AUTO_TEST_CASE(not_applied_function_call_different_arguments)
+{
+ CHECK(
+ "{ function f(a) -> b { } let c := sub(f(0), f(1)) }",
+ "{ function f(a) -> b { } let c := sub(f(0), f(1)) }"
+ );
+}
+
+BOOST_AUTO_TEST_CASE(not_applied_function_call_equality_not_movable)
+{
+ CHECK(
+ // Even if the functions pass the equality check, they are not movable.
+ "{ function f() -> a { } let b := sub(f(), f()) }",
+ "{ function f() -> a { } let b := sub(f(), f()) }"
+ );
+}
+
+
BOOST_AUTO_TEST_SUITE_END()