Commit 28dbc58837

LemonBoy <thatlemon@gmail.com>
2020-03-20 22:23:51
Address review comments
1 parent 128e70f
Changed files (3)
lib
test
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;
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();
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 {