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