diff --git a/src/reduce.zig b/src/reduce.zig index bd7ab54bf15fe640b01eaa0ff7a79e8bbb61e54d..7013c706741a1905275e5531b6c24c22a10155c4 100644 --- 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 index 49730e9085daf0c0c399884082d9bf224c74061f..23935398afe157430d3bf2ee8cdb1a0f971556b4 100644 --- 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); }, }