| ... | @@ -12607,18 +12607,16 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I | ... | @@ -12607,18 +12607,16 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I |
| 12607 | enum_obj.tag_ty = try tag_type_val.toType(&buffer).copy(new_decl_arena_allocator); | 12607 | enum_obj.tag_ty = try tag_type_val.toType(&buffer).copy(new_decl_arena_allocator); |
| 12608 | | 12608 | |
| 12609 | // Fields | 12609 | // Fields |
| 12610 | const slice_val = fields_val.castTag(.slice).?.data; | 12610 | const fields_len = try sema.usizeCast(block, src, fields_val.sliceLen()); |
| 12611 | const decl = slice_val.ptr.pointerDecl().?; | | |
| 12612 | try sema.ensureDeclAnalyzed(decl); | | |
| 12613 | const fields_len = try sema.usizeCast(block, src, decl.ty.arrayLen()); | | |
| 12614 | if (fields_len > 0) { | 12611 | if (fields_len > 0) { |
| 12615 | try enum_obj.fields.ensureTotalCapacity(new_decl_arena_allocator, fields_len); | 12612 | try enum_obj.fields.ensureTotalCapacity(new_decl_arena_allocator, fields_len); |
| 12616 | try enum_obj.values.ensureTotalCapacityContext(new_decl_arena_allocator, fields_len, .{ | 12613 | try enum_obj.values.ensureTotalCapacityContext(new_decl_arena_allocator, fields_len, .{ |
| 12617 | .ty = enum_obj.tag_ty, | 12614 | .ty = enum_obj.tag_ty, |
| 12618 | }); | 12615 | }); |
| 12619 | | 12616 | |
| 12620 | const array_vals = decl.val.castTag(.aggregate).?.data; | 12617 | var i: usize = 0; |
| 12621 | for (array_vals) |elem_val| { | 12618 | while (i < fields_len) : (i += 1) { |
| | 12619 | const elem_val = try fields_val.elemValue(sema.arena, i); |
| 12622 | const field_struct_val = elem_val.castTag(.aggregate).?.data; | 12620 | const field_struct_val = elem_val.castTag(.aggregate).?.data; |
| 12623 | // TODO use reflection instead of magic numbers here | 12621 | // TODO use reflection instead of magic numbers here |
| 12624 | // name: []const u8 | 12622 | // name: []const u8 |