From 88acdb9aa6cdb8ea20e02c4d0f85be81f696897c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 4 Nov 2023 18:06:11 -0700 Subject: [PATCH] zig reduce: delete statements from blocks --- lib/std/zig/render.zig | 7 ++++++- src/reduce/Walk.zig | 7 +++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig index f8ad44353f..acd4a6e002 100644 --- a/lib/std/zig/render.zig +++ b/lib/std/zig/render.zig @@ -2043,7 +2043,12 @@ fn finishRenderBlock( .simple_var_decl, .aligned_var_decl, => try renderVarDecl(r, tree.fullVarDecl(stmt).?, false, .semicolon), - else => try renderExpression(r, stmt, .semicolon), + + else => { + if (!r.fixups.omit_nodes.contains(stmt)) { + try renderExpression(r, stmt, .semicolon); + } + }, } } ais.popIndent(); diff --git a/src/reduce/Walk.zig b/src/reduce/Walk.zig index fc64b0541c..49730e9085 100644 --- a/src/reduce/Walk.zig +++ b/src/reduce/Walk.zig @@ -134,8 +134,8 @@ fn walkMember(w: *Walk, decl: Ast.Node.Index) Error!void { const body_node = datas[decl].rhs; if (!isFnBodyGutted(ast, body_node)) { try w.transformations.append(.{ .gut_function = decl }); + try walkExpression(w, body_node); } - try walkExpression(w, body_node); }, .fn_proto_simple, .fn_proto_multi, @@ -648,7 +648,10 @@ fn walkBlock( .aligned_var_decl, => try walkLocalVarDecl(w, ast.fullVarDecl(stmt).?), - else => try walkExpression(w, stmt), + else => { + try w.transformations.append(.{ .delete_node = stmt }); + try walkExpression(w, stmt); + }, } } }