motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit e93d3a3cdb276c8ed3e50466f348e6a4b9de6899 (tree)
parent 9e81222d9281f8d26e32578fe3cef54e0c7d5232
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Sat,  4 Nov 2023 19:27:46 -0700

zig reduce: don't try to remove discard statements

those are handled separately

Diffstat:
Msrc/reduce.zig | 4++--
Msrc/reduce/Walk.zig | 6+++++-
2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/reduce.zig b/src/reduce.zig @@ -229,8 +229,8 @@ pub fn main(gpa: Allocator, arena: Allocator, args: []const []const u8) !void { //std.debug.print("trying this code:\n{s}\n", .{rendered.items}); const interestingness = try runCheck(arena, interestingness_argv.items); - std.debug.print("{d} random transformations: {s}. {d} remaining\n", .{ - subset_size, @tagName(interestingness), transformations.items.len - start_index, + std.debug.print("{d} random transformations: {s}. {d}/{d}\n", .{ + subset_size, @tagName(interestingness), start_index, transformations.items.len, }); switch (interestingness) { .interesting => { diff --git a/src/reduce/Walk.zig b/src/reduce/Walk.zig @@ -649,7 +649,11 @@ fn walkBlock( => try walkLocalVarDecl(w, ast.fullVarDecl(stmt).?), else => { - try w.transformations.append(.{ .delete_node = stmt }); + // Don't try to remove `_ = foo;` discards; those are handled separately. + switch (categorizeStmt(ast, stmt)) { + .discard_identifier => {}, + else => try w.transformations.append(.{ .delete_node = stmt }), + } try walkExpression(w, stmt); }, }