aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Sema.zig1
-rw-r--r--test/cases/inherit_want_safety.zig7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 7e44e0c86d..b8dcd0a1a5 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -11292,6 +11292,7 @@ fn zirSwitchBlockErrUnion(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Comp
.runtime_loop = block.runtime_loop,
.runtime_index = block.runtime_index,
.error_return_trace_index = block.error_return_trace_index,
+ .want_safety = block.want_safety,
};
const merges = &child_block.label.?.merges;
defer child_block.instructions.deinit(gpa);
diff --git a/test/cases/inherit_want_safety.zig b/test/cases/inherit_want_safety.zig
index 6a70e603a6..a0c79952b8 100644
--- a/test/cases/inherit_want_safety.zig
+++ b/test/cases/inherit_want_safety.zig
@@ -23,6 +23,13 @@ pub export fn entry() usize {
u += 1;
},
}
+ if (@as(error{}!usize, u)) |_| {
+ u += 1;
+ } else |e| switch (e) {
+ else => {
+ u += 1;
+ }
+ }
return u;
}