| ... | @@ -408,6 +408,18 @@ pub const DeclGen = struct { | ... | @@ -408,6 +408,18 @@ pub const DeclGen = struct { |
| 408 | try dg.renderValue(writer, Type.usize, slice.len); | 408 | try dg.renderValue(writer, Type.usize, slice.len); |
| 409 | try writer.writeAll("}"); | 409 | try writer.writeAll("}"); |
| 410 | }, | 410 | }, |
| | 411 | .elem_ptr => { |
| | 412 | const elem_ptr = val.castTag(.elem_ptr).?.data; |
| | 413 | var arena = std.heap.ArenaAllocator.init(dg.module.gpa); |
| | 414 | defer arena.deinit(); |
| | 415 | const elem_ptr_ty = try ty.elemPtrType(arena.allocator()); |
| | 416 | |
| | 417 | try writer.writeAll("(&(("); |
| | 418 | try dg.renderType(writer, ty); |
| | 419 | try writer.writeByte(')'); |
| | 420 | try dg.renderValue(writer, elem_ptr_ty, elem_ptr.array_ptr); |
| | 421 | try writer.print(")[{d}])", .{elem_ptr.index}); |
| | 422 | }, |
| 411 | .function => { | 423 | .function => { |
| 412 | const func = val.castTag(.function).?.data; | 424 | const func = val.castTag(.function).?.data; |
| 413 | try dg.renderDeclName(func.owner_decl, writer); | 425 | try dg.renderDeclName(func.owner_decl, writer); |