aboutsummaryrefslogtreecommitdiff
path: root/src/InternPool.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2023-11-21 13:44:03 +0200
committerVeikka Tuominen <git@vexu.eu>2023-11-21 13:59:14 +0200
commitd63298da65df7fa2712bf9e9d65d36cd91af22fa (patch)
treea6da55d3509c34bc9de0199e2bdf408e5ab27ac6 /src/InternPool.zig
parenta947f97331595df4ee340bbcfcef7241555c687b (diff)
downloadzig-d63298da65df7fa2712bf9e9d65d36cd91af22fa.tar.gz
zig-d63298da65df7fa2712bf9e9d65d36cd91af22fa.zip
InternPool: handle `funcZirBodyInst` for `func_coerced`
Closes #18039
Diffstat (limited to 'src/InternPool.zig')
-rw-r--r--src/InternPool.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/InternPool.zig b/src/InternPool.zig
index 10016a9329..11204287f6 100644
--- a/src/InternPool.zig
+++ b/src/InternPool.zig
@@ -8301,6 +8301,13 @@ pub fn funcZirBodyInst(ip: *const InternPool, i: Index) Zir.Inst.Index {
assert(ip.items.items(.tag)[func_decl_index] == .func_decl);
break :b ip.items.items(.data)[func_decl_index] + zir_body_inst_field_index;
},
+ .func_coerced => {
+ const datas = ip.items.items(.data);
+ const uncoerced_func_index: Index = @enumFromInt(ip.extra.items[
+ datas[@intFromEnum(i)] + std.meta.fieldIndex(Tag.FuncCoerced, "func").?
+ ]);
+ return ip.funcZirBodyInst(uncoerced_func_index);
+ },
else => unreachable,
};
return @enumFromInt(ip.extra.items[extra_index]);