aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-09-10 23:09:09 +0300
committerAndrew Kelley <andrew@ziglang.org>2022-09-20 19:05:00 -0700
commit8f2e82dbf63aedc64af5c701c4798e9fbd51de72 (patch)
treeeb189f7eccfa65ca0fd5cebf7c06e4f62b40cae9 /test
parent62ecc154d9ad065aee57d81afd3a478dd8360fb7 (diff)
downloadzig-8f2e82dbf63aedc64af5c701c4798e9fbd51de72.tar.gz
zig-8f2e82dbf63aedc64af5c701c4798e9fbd51de72.zip
safety: show error return trace when unwrapping error in switch
Diffstat (limited to 'test')
-rw-r--r--test/cases/safety/unwrap error switch.zig21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/cases/safety/unwrap error switch.zig b/test/cases/safety/unwrap error switch.zig
new file mode 100644
index 0000000000..1df0253e09
--- /dev/null
+++ b/test/cases/safety/unwrap error switch.zig
@@ -0,0 +1,21 @@
+const std = @import("std");
+
+pub fn panic(message: []const u8, stack_trace: ?*std.builtin.StackTrace) noreturn {
+ _ = stack_trace;
+ if (std.mem.eql(u8, message, "attempt to unwrap error: Whatever")) {
+ std.process.exit(0);
+ }
+ std.process.exit(1);
+}
+pub fn main() !void {
+ bar() catch |err| switch (err) {
+ error.Whatever => unreachable,
+ };
+ return error.TestFailed;
+}
+fn bar() !void {
+ return error.Whatever;
+}
+// run
+// backend=llvm
+// target=native