| ... | ... | @@ -20950,6 +20950,11 @@ fn analyzeLoad( |
| 20950 | 20950 | .Pointer => ptr_ty.childType(), |
| 20951 | 20951 | else => return sema.fail(block, ptr_src, "expected pointer, found '{}'", .{ptr_ty.fmt(sema.mod)}), |
| 20952 | 20952 | }; |
| 20953 | |
| 20954 | if (try sema.typeHasOnePossibleValue(block, src, elem_ty)) |opv| { |
| 20955 | return sema.addConstant(elem_ty, opv); |
| 20956 | } |
| 20957 | |
| 20953 | 20958 | if (try sema.resolveDefinedValue(block, ptr_src, ptr)) |ptr_val| { |
| 20954 | 20959 | if (try sema.pointerDeref(block, ptr_src, ptr_val, ptr_ty)) |elem_val| { |
| 20955 | 20960 | return sema.addConstant(elem_ty, elem_val); |