diff options
-rw-r--r-- | libjulia/optimiser/UnusedPruner.cpp | 6 | ||||
-rw-r--r-- | test/libjulia/UnusedPruner.cpp | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/libjulia/optimiser/UnusedPruner.cpp b/libjulia/optimiser/UnusedPruner.cpp index e33bef78..50f4d9f1 100644 --- a/libjulia/optimiser/UnusedPruner.cpp +++ b/libjulia/optimiser/UnusedPruner.cpp @@ -60,12 +60,14 @@ void UnusedPruner::operator()(Block& _block) [=](TypedName const& _typedName) { return used(_typedName.name); } )) { - if (!varDecl.value || MovableChecker(*varDecl.value).movable()) + if (!varDecl.value) + statement = Block{std::move(varDecl.location), {}}; + else if (MovableChecker(*varDecl.value).movable()) { subtractReferences(ReferencesCounter::countReferences(*varDecl.value)); statement = Block{std::move(varDecl.location), {}}; } - else if (varDecl.value && varDecl.variables.size() == 1) + else if (varDecl.variables.size() == 1) statement = ExpressionStatement{varDecl.location, FunctionalInstruction{ varDecl.location, solidity::Instruction::POP, diff --git a/test/libjulia/UnusedPruner.cpp b/test/libjulia/UnusedPruner.cpp index e646cee6..48ada5ed 100644 --- a/test/libjulia/UnusedPruner.cpp +++ b/test/libjulia/UnusedPruner.cpp @@ -63,6 +63,14 @@ BOOST_AUTO_TEST_CASE(trivial) ); } +BOOST_AUTO_TEST_CASE(multi_declarations) +{ + CHECK( + "{ let x, y }", + "{ }" + ); +} + BOOST_AUTO_TEST_CASE(functions) { CHECK( |