| ... | @@ -559,6 +559,7 @@ pub const DeclGen = struct { | ... | @@ -559,6 +559,7 @@ pub const DeclGen = struct { |
| 559 | try writer.writeByte(')'); | 559 | try writer.writeByte(')'); |
| 560 | } | 560 | } |
| 561 | switch (ptr_val.tag()) { | 561 | switch (ptr_val.tag()) { |
| | 562 | .int_u64, .one => try writer.print("{x}", .{try dg.fmtIntLiteral(Type.usize, ptr_val)}), |
| 562 | .decl_ref_mut, .decl_ref, .variable => { | 563 | .decl_ref_mut, .decl_ref, .variable => { |
| 563 | const decl_index = switch (ptr_val.tag()) { | 564 | const decl_index = switch (ptr_val.tag()) { |
| 564 | .decl_ref => ptr_val.castTag(.decl_ref).?.data, | 565 | .decl_ref => ptr_val.castTag(.decl_ref).?.data, |
| ... | @@ -640,6 +641,9 @@ pub const DeclGen = struct { | ... | @@ -640,6 +641,9 @@ pub const DeclGen = struct { |
| 640 | }; | 641 | }; |
| 641 | | 642 | |
| 642 | if (field_info.ty.hasRuntimeBitsIgnoreComptime()) { | 643 | if (field_info.ty.hasRuntimeBitsIgnoreComptime()) { |
| | 644 | // Ensure complete type definition is visible before accessing fields. |
| | 645 | try dg.renderType(std.io.null_writer, field_ptr.container_ty, .Complete); |
| | 646 | |
| 643 | try writer.writeAll("&("); | 647 | try writer.writeAll("&("); |
| 644 | try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty); | 648 | try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty); |
| 645 | try writer.writeAll(")->"); | 649 | try writer.writeAll(")->"); |
| ... | @@ -672,6 +676,9 @@ pub const DeclGen = struct { | ... | @@ -672,6 +676,9 @@ pub const DeclGen = struct { |
| 672 | }; | 676 | }; |
| 673 | const container_ptr_ty = Type.initPayload(&container_ptr_ty_pl.base); | 677 | const container_ptr_ty = Type.initPayload(&container_ptr_ty_pl.base); |
| 674 | | 678 | |
| | 679 | // Ensure complete type definition is visible before accessing fields. |
| | 680 | try dg.renderType(std.io.null_writer, payload_ptr.container_ty, .Complete); |
| | 681 | |
| 675 | try writer.writeAll("&("); | 682 | try writer.writeAll("&("); |
| 676 | try dg.renderParentPtr(writer, payload_ptr.container_ptr, container_ptr_ty); | 683 | try dg.renderParentPtr(writer, payload_ptr.container_ptr, container_ptr_ty); |
| 677 | try writer.writeAll(")->payload"); | 684 | try writer.writeAll(")->payload"); |