diff --git a/src/Sema.zig b/src/Sema.zig index e6255392868ed75aa809a9056e927844591b4de0..cf9b5aa57fe97bfadf68ef03483b34c3c106a9ee 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -20950,6 +20950,11 @@ fn analyzeLoad( .Pointer => ptr_ty.childType(), else => return sema.fail(block, ptr_src, "expected pointer, found '{}'", .{ptr_ty.fmt(sema.mod)}), }; + + if (try sema.typeHasOnePossibleValue(block, src, elem_ty)) |opv| { + return sema.addConstant(elem_ty, opv); + } + if (try sema.resolveDefinedValue(block, ptr_src, ptr)) |ptr_val| { if (try sema.pointerDeref(block, ptr_src, ptr_val, ptr_ty)) |elem_val| { return sema.addConstant(elem_ty, elem_val);