authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2025-01-05 11:41:13+00:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2025-01-05 19:38:19+00:00
log137787edbb1320ce50bd4193d69f21ffaf8593e8
tree01f466adf6a09cb802d5b7e1bb3a94c1320f362d
parent82e7f23c49be10ce74cb1a951aa7cb77799c2798

Sema: fix incorrect type in `optional_payload` instruction

Resolves: #22417

1 files changed, 3 insertions(+), 2 deletions(-)

src/Sema.zig+3-2
...@@ -32735,7 +32735,8 @@ fn analyzeOptionalSlicePtr(...@@ -32735,7 +32735,8 @@ fn analyzeOptionalSlicePtr(
32735) CompileError!Air.Inst.Ref {32735) CompileError!Air.Inst.Ref {
32736 const pt = sema.pt;32736 const pt = sema.pt;
32737 const zcu = pt.zcu;32737 const zcu = pt.zcu;
32738 const result_ty = opt_slice_ty.optionalChild(zcu).slicePtrFieldType(zcu);32738 const slice_ty = opt_slice_ty.optionalChild(zcu);
32739 const result_ty = slice_ty.slicePtrFieldType(zcu);
3273932740
32740 if (try sema.resolveValue(opt_slice)) |opt_val| {32741 if (try sema.resolveValue(opt_slice)) |opt_val| {
32741 if (opt_val.isUndef(zcu)) return pt.undefRef(result_ty);32742 if (opt_val.isUndef(zcu)) return pt.undefRef(result_ty);
...@@ -32749,7 +32750,7 @@ fn analyzeOptionalSlicePtr(...@@ -32749,7 +32750,7 @@ fn analyzeOptionalSlicePtr(
3274932750
32750 try sema.requireRuntimeBlock(block, opt_slice_src, null);32751 try sema.requireRuntimeBlock(block, opt_slice_src, null);
3275132752
32752 const slice = try block.addTyOp(.optional_payload, opt_slice_ty, opt_slice);32753 const slice = try block.addTyOp(.optional_payload, slice_ty, opt_slice);
32753 return block.addTyOp(.slice_ptr, result_ty, slice);32754 return block.addTyOp(.slice_ptr, result_ty, slice);
32754}32755}
3275532756