stage2: Add container_ty/elem_ty to elem_ptr, field_ptr, *_payload_ptr Values

This commit is contained in:
Cody Tapscott
2022-03-10 18:10:41 -07:00
committed by Andrew Kelley
parent a2a5d3c288
commit bbd750ff05
3 changed files with 92 additions and 55 deletions

View File

@@ -2901,7 +2901,7 @@ pub const DeclGen = struct {
},
.opt_payload_ptr => {
const opt_payload_ptr = ptr_val.castTag(.opt_payload_ptr).?.data;
const parent = try dg.lowerParentPtr(opt_payload_ptr, base_ty);
const parent = try dg.lowerParentPtr(opt_payload_ptr.container_ptr, base_ty);
var buf: Type.Payload.ElemType = undefined;
const payload_ty = parent.ty.optionalChild(&buf);
if (!payload_ty.hasRuntimeBitsIgnoreComptime() or parent.ty.isPtrLikeOptional()) {
@@ -2925,7 +2925,7 @@ pub const DeclGen = struct {
},
.eu_payload_ptr => {
const eu_payload_ptr = ptr_val.castTag(.eu_payload_ptr).?.data;
const parent = try dg.lowerParentPtr(eu_payload_ptr, base_ty);
const parent = try dg.lowerParentPtr(eu_payload_ptr.container_ptr, base_ty);
const payload_ty = parent.ty.errorUnionPayload();
if (!payload_ty.hasRuntimeBitsIgnoreComptime()) {
// In this case, we represent pointer to error union the same as pointer