Make the dialect available everywhere.

This commit is contained in:
chriseth
2019-01-07 16:41:03 +01:00
parent d9910f2a12
commit 9222eff08f
29 changed files with 198 additions and 116 deletions
@@ -150,9 +150,9 @@ void RedundantAssignEliminator::operator()(Block const& _block)
ASTWalker::operator()(_block);
}
void RedundantAssignEliminator::run(Block& _ast)
void RedundantAssignEliminator::run(Dialect const& _dialect, Block& _ast)
{
RedundantAssignEliminator rae;
RedundantAssignEliminator rae{_dialect};
rae(_ast);
AssignmentRemover remover{rae.m_assignmentsToRemove};
@@ -211,7 +211,7 @@ void RedundantAssignEliminator::finalize(YulString _variable)
for (auto& assignment: m_assignments[_variable])
{
assertThrow(assignment.second != State::Undecided, OptimizerException, "");
if (assignment.second == State{State::Unused} && MovableChecker{*assignment.first->value}.movable())
if (assignment.second == State{State::Unused} && MovableChecker{*m_dialect, *assignment.first->value}.movable())
// TODO the only point where we actually need this
// to be a set is for the for loop
m_assignmentsToRemove.insert(assignment.first);