diff options
| -rw-r--r-- | src/Sema.zig | 1 | ||||
| -rw-r--r-- | test/cases/inherit_want_safety.zig | 7 |
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; } |
