diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index b71a78221f..894f726fb1 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -1,4 +1,4 @@ -test "zig fmt: noasync block" { +test "zig fmt: errdefer with payload" { try testCanonical( \\pub fn main() anyerror!void { \\ errdefer |a| x += 1; diff --git a/test/compile_errors.zig b/test/compile_errors.zig index e3e1462173..d2e298032f 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -2,6 +2,18 @@ const tests = @import("tests.zig"); const std = @import("std"); pub fn addCases(cases: *tests.CompileErrorContext) void { + cases.addTest("unused variable error on errdefer", + \\fn foo() !void { + \\ errdefer |a| unreachable; + \\ return error.A; + \\} + \\export fn entry() void { + \\ foo() catch unreachable; + \\} + , &[_][]const u8{ + "tmp.zig:2:15: error: unused variable: 'a'", + }); + cases.addTest("shift on type with non-power-of-two size", \\export fn entry() void { \\ const S = struct { diff --git a/test/stage1/behavior/defer.zig b/test/stage1/behavior/defer.zig index 7cefafa9a0..6bfeb485cc 100644 --- a/test/stage1/behavior/defer.zig +++ b/test/stage1/behavior/defer.zig @@ -1,6 +1,7 @@ const std = @import("std"); const expect = std.testing.expect; const expectEqual = std.testing.expectEqual; +const expectError = std.testing.expectError; var result: [3]u8 = undefined; var index: usize = undefined; @@ -105,10 +106,7 @@ test "errdefer with payload" { return error.One; } fn doTheTest() void { - _ = foo() catch |err| switch (err) { - error.One => {}, - else => unreachable, - }; + expectError(error.One, foo()); } }; S.doTheTest();