| ... | ... | @@ -17030,14 +17030,14 @@ fn zirReify(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData, in |
| 17030 | 17030 | const payload_val = union_val.val.optionalValue() orelse |
| 17031 | 17031 | return sema.addType(Type.initTag(.anyerror)); |
| 17032 | 17032 | const slice_val = payload_val.castTag(.slice).?.data; |
| 17033 | | const decl_index = slice_val.ptr.pointerDecl().?; |
| 17034 | | try sema.ensureDeclAnalyzed(decl_index); |
| 17035 | | const decl = mod.declPtr(decl_index); |
| 17036 | | const array_val: []Value = if (decl.val.castTag(.aggregate)) |some| some.data else &.{}; |
| 17037 | 17033 | |
| 17034 | const len = try sema.usizeCast(block, src, slice_val.len.toUnsignedInt(mod.getTarget())); |
| 17038 | 17035 | var names: Module.ErrorSet.NameMap = .{}; |
| 17039 | | try names.ensureUnusedCapacity(sema.arena, array_val.len); |
| 17040 | | for (array_val) |elem_val| { |
| 17036 | try names.ensureUnusedCapacity(sema.arena, len); |
| 17037 | var i: usize = 0; |
| 17038 | while (i < len) : (i += 1) { |
| 17039 | var buf: Value.ElemValueBuffer = undefined; |
| 17040 | const elem_val = slice_val.ptr.elemValueBuffer(mod, i, &buf); |
| 17041 | 17041 | const struct_val = elem_val.castTag(.aggregate).?.data; |
| 17042 | 17042 | // TODO use reflection instead of magic numbers here |
| 17043 | 17043 | // error_set: type, |
| ... | ... | @@ -17429,14 +17429,14 @@ fn zirReify(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData, in |
| 17429 | 17429 | var buf: Value.ToTypeBuffer = undefined; |
| 17430 | 17430 | |
| 17431 | 17431 | const args_slice_val = args_val.castTag(.slice).?.data; |
| 17432 | | const args_decl_index = args_slice_val.ptr.pointerDecl().?; |
| 17433 | | try sema.ensureDeclAnalyzed(args_decl_index); |
| 17434 | | const args_decl = mod.declPtr(args_decl_index); |
| 17435 | | const args: []Value = if (args_decl.val.castTag(.aggregate)) |some| some.data else &.{}; |
| 17436 | | var param_types = try sema.arena.alloc(Type, args.len); |
| 17437 | | var comptime_params = try sema.arena.alloc(bool, args.len); |
| 17432 | const args_len = try sema.usizeCast(block, src, args_slice_val.len.toUnsignedInt(mod.getTarget())); |
| 17433 | var param_types = try sema.arena.alloc(Type, args_len); |
| 17434 | var comptime_params = try sema.arena.alloc(bool, args_len); |
| 17438 | 17435 | var noalias_bits: u32 = 0; |
| 17439 | | for (args) |arg, i| { |
| 17436 | var i: usize = 0; |
| 17437 | while (i < args_len) : (i += 1) { |
| 17438 | var arg_buf: Value.ElemValueBuffer = undefined; |
| 17439 | const arg = args_slice_val.ptr.elemValueBuffer(mod, i, &arg_buf); |
| 17440 | 17440 | const arg_val = arg.castTag(.aggregate).?.data; |
| 17441 | 17441 | // TODO use reflection instead of magic numbers here |
| 17442 | 17442 | // is_generic: bool, |