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