30 bool visitExpressionPtr(std::unique_ptr<Expression>& expr)
override {
35 bool visitStatementPtr(std::unique_ptr<Statement>& stmt)
override {
37 INHERITED::visitStatementPtr(stmt);
39 if (stmt->is<
Block>()) {
41 auto iter = std::remove_if(children.
begin(), children.
end(),
42 [](std::unique_ptr<Statement>& stmt) {
43 return stmt->isEmpty();
45 children.
resize(std::distance(children.
begin(), iter));
55 for (std::unique_ptr<ProgramElement>& pe : elements) {
57 EmptyStatementEliminator visitor;