diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-09-12 16:11:18 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-09-12 16:11:18 -0700 |
| commit | 011663eea590dddff79b73c72bfeda5dd7f947cc (patch) | |
| tree | c51299eb6d22d3762674540de062d7e4723c9a92 /test/behavior | |
| parent | 01e89fec71c781113f4be6f65af8e1702c8dde7c (diff) | |
| parent | e323cf1264f390911dcc2efea71d46be1d631d92 (diff) | |
| download | zig-011663eea590dddff79b73c72bfeda5dd7f947cc.tar.gz zig-011663eea590dddff79b73c72bfeda5dd7f947cc.zip | |
Merge remote-tracking branch 'origin/master' into llvm15
Diffstat (limited to 'test/behavior')
| -rw-r--r-- | test/behavior/defer.zig | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/behavior/defer.zig b/test/behavior/defer.zig index 70053ba01f..7bf66496a4 100644 --- a/test/behavior/defer.zig +++ b/test/behavior/defer.zig @@ -127,3 +127,20 @@ test "errdefer with payload" { try S.doTheTest(); comptime try S.doTheTest(); } + +test "simple else prong doesn't emit an error for unreachable else prong" { + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + + const S = struct { + fn foo() error{Foo}!void { + return error.Foo; + } + }; + var a: u32 = 0; + defer a += 1; + S.foo() catch |err| switch (err) { + error.Foo => a += 1, + else => |e| return e, + }; + try expect(a == 1); +} |
