Merge pull request #5186 from ethereum/renameBreaker

Rename ExpressionBreaker to ExpressionSplitter.
This commit is contained in:
chriseth 2018-10-10 16:36:55 +02:00 committed by GitHub
commit dd4acda73a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 13 deletions

View File

@ -19,7 +19,7 @@
* declarations. * declarations.
*/ */
#include <libjulia/optimiser/ExpressionBreaker.h> #include <libjulia/optimiser/ExpressionSplitter.h>
#include <libjulia/optimiser/ASTWalker.h> #include <libjulia/optimiser/ASTWalker.h>
@ -34,25 +34,25 @@ using namespace dev;
using namespace dev::julia; using namespace dev::julia;
using namespace dev::solidity; using namespace dev::solidity;
void ExpressionBreaker::operator()(FunctionalInstruction& _instruction) void ExpressionSplitter::operator()(FunctionalInstruction& _instruction)
{ {
for (auto& arg: _instruction.arguments | boost::adaptors::reversed) for (auto& arg: _instruction.arguments | boost::adaptors::reversed)
outlineExpression(arg); outlineExpression(arg);
} }
void ExpressionBreaker::operator()(FunctionCall& _funCall) void ExpressionSplitter::operator()(FunctionCall& _funCall)
{ {
for (auto& arg: _funCall.arguments | boost::adaptors::reversed) for (auto& arg: _funCall.arguments | boost::adaptors::reversed)
outlineExpression(arg); outlineExpression(arg);
} }
void ExpressionBreaker::operator()(If& _if) void ExpressionSplitter::operator()(If& _if)
{ {
outlineExpression(*_if.condition); outlineExpression(*_if.condition);
(*this)(_if.body); (*this)(_if.body);
} }
void ExpressionBreaker::operator()(Switch& _switch) void ExpressionSplitter::operator()(Switch& _switch)
{ {
outlineExpression(*_switch.expression); outlineExpression(*_switch.expression);
for (auto& _case: _switch.cases) for (auto& _case: _switch.cases)
@ -60,7 +60,7 @@ void ExpressionBreaker::operator()(Switch& _switch)
(*this)(_case.body); (*this)(_case.body);
} }
void ExpressionBreaker::operator()(ForLoop& _loop) void ExpressionSplitter::operator()(ForLoop& _loop)
{ {
(*this)(_loop.pre); (*this)(_loop.pre);
// Do not visit the condition because we cannot break expressions there. // Do not visit the condition because we cannot break expressions there.
@ -68,7 +68,7 @@ void ExpressionBreaker::operator()(ForLoop& _loop)
(*this)(_loop.body); (*this)(_loop.body);
} }
void ExpressionBreaker::operator()(Block& _block) void ExpressionSplitter::operator()(Block& _block)
{ {
vector<Statement> saved; vector<Statement> saved;
swap(saved, m_statementsToPrefix); swap(saved, m_statementsToPrefix);
@ -87,7 +87,7 @@ void ExpressionBreaker::operator()(Block& _block)
swap(saved, m_statementsToPrefix); swap(saved, m_statementsToPrefix);
} }
void ExpressionBreaker::outlineExpression(Expression& _expr) void ExpressionSplitter::outlineExpression(Expression& _expr)
{ {
if (_expr.type() != typeid(FunctionalInstruction) && _expr.type() != typeid(FunctionCall)) if (_expr.type() != typeid(FunctionalInstruction) && _expr.type() != typeid(FunctionCall))
return; return;

View File

@ -56,10 +56,10 @@ class NameCollector;
* function calls can only appear in the right-hand side of a variable declaration, * function calls can only appear in the right-hand side of a variable declaration,
* assignments or expression statements and all arguments have to be constants or variables. * assignments or expression statements and all arguments have to be constants or variables.
*/ */
class ExpressionBreaker: public ASTModifier class ExpressionSplitter: public ASTModifier
{ {
public: public:
explicit ExpressionBreaker(NameDispenser& _nameDispenser): explicit ExpressionSplitter(NameDispenser& _nameDispenser):
m_nameDispenser(_nameDispenser) m_nameDispenser(_nameDispenser)
{ } { }

View File

@ -20,7 +20,7 @@
#include <test/libjulia/Common.h> #include <test/libjulia/Common.h>
#include <libjulia/optimiser/ExpressionBreaker.h> #include <libjulia/optimiser/ExpressionSplitter.h>
#include <libjulia/optimiser/NameCollector.h> #include <libjulia/optimiser/NameCollector.h>
#include <libsolidity/inlineasm/AsmPrinter.h> #include <libsolidity/inlineasm/AsmPrinter.h>
@ -43,12 +43,12 @@ do\
auto result = parse(_original, false);\ auto result = parse(_original, false);\
NameDispenser nameDispenser;\ NameDispenser nameDispenser;\
nameDispenser.m_usedNames = NameCollector(*result.first).names();\ nameDispenser.m_usedNames = NameCollector(*result.first).names();\
ExpressionBreaker{nameDispenser}(*result.first);\ ExpressionSplitter{nameDispenser}(*result.first);\
BOOST_CHECK_EQUAL(assembly::AsmPrinter{}(*result.first), format(_expectation, false));\ BOOST_CHECK_EQUAL(assembly::AsmPrinter{}(*result.first), format(_expectation, false));\
}\ }\
while(false) while(false)
BOOST_AUTO_TEST_SUITE(YulExpressionBreaker) BOOST_AUTO_TEST_SUITE(YulExpressionSplitter)
BOOST_AUTO_TEST_CASE(smoke_test) BOOST_AUTO_TEST_CASE(smoke_test)
{ {