| ... | @@ -7069,6 +7069,17 @@ pub fn funcIesResolved(ip: *const InternPool, func_index: Index) *Index { | ... | @@ -7069,6 +7069,17 @@ pub fn funcIesResolved(ip: *const InternPool, func_index: Index) *Index { |
| 7069 | const extra_index = switch (tags[@intFromEnum(func_index)]) { | 7069 | const extra_index = switch (tags[@intFromEnum(func_index)]) { |
| 7070 | .func_decl => func_start + @typeInfo(Tag.FuncDecl).Struct.fields.len, | 7070 | .func_decl => func_start + @typeInfo(Tag.FuncDecl).Struct.fields.len, |
| 7071 | .func_instance => func_start + @typeInfo(Tag.FuncInstance).Struct.fields.len, | 7071 | .func_instance => func_start + @typeInfo(Tag.FuncInstance).Struct.fields.len, |
| | 7072 | .func_coerced => i: { |
| | 7073 | const uncoerced_func_index: Index = @enumFromInt(ip.extra.items[ |
| | 7074 | func_start + std.meta.fieldIndex(Tag.FuncCoerced, "func").? |
| | 7075 | ]); |
| | 7076 | const uncoerced_func_start = datas[@intFromEnum(uncoerced_func_index)]; |
| | 7077 | break :i switch (tags[@intFromEnum(uncoerced_func_index)]) { |
| | 7078 | .func_decl => uncoerced_func_start + @typeInfo(Tag.FuncDecl).Struct.fields.len, |
| | 7079 | .func_instance => uncoerced_func_start + @typeInfo(Tag.FuncInstance).Struct.fields.len, |
| | 7080 | else => unreachable, |
| | 7081 | }; |
| | 7082 | }, |
| 7072 | else => unreachable, | 7083 | else => unreachable, |
| 7073 | }; | 7084 | }; |
| 7074 | return @ptrCast(&ip.extra.items[extra_index]); | 7085 | return @ptrCast(&ip.extra.items[extra_index]); |