diff --git a/src/Sema.zig b/src/Sema.zig index 7e44e0c86dbfdf2fb60cdc595c0312e2e0dda340..b8dcd0a1a5568009bbb744f0225ecc8e897a582f 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 6a70e603a67ab84b463b3689456d481bdbc67546..a0c79952b8d167b9319fb70e9b00519cc4b6b0b2 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; }