mirror of
https://github.com/ziglang/zig.git
synced 2026-02-15 05:48:31 +00:00
Zcu: perform orphan checks against uncoerced function
This commit is contained in:
parent
075c103332
commit
347196f905
@ -9223,7 +9223,7 @@ pub fn funcTypeParamsLen(ip: *const InternPool, i: Index) u32 {
|
||||
return ip.extra.items[start + std.meta.fieldIndex(Tag.TypeFunction, "params_len").?];
|
||||
}
|
||||
|
||||
fn unwrapCoercedFunc(ip: *const InternPool, i: Index) Index {
|
||||
pub fn unwrapCoercedFunc(ip: *const InternPool, i: Index) Index {
|
||||
const tags = ip.items.items(.tag);
|
||||
return switch (tags[@intFromEnum(i)]) {
|
||||
.func_coerced => {
|
||||
|
||||
@ -3113,13 +3113,18 @@ pub fn ensureDeclAnalyzed(mod: *Module, decl_index: Decl.Index) SemaError!void {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn ensureFuncBodyAnalyzed(zcu: *Zcu, func_index: InternPool.Index) SemaError!void {
|
||||
pub fn ensureFuncBodyAnalyzed(zcu: *Zcu, maybe_coerced_func_index: InternPool.Index) SemaError!void {
|
||||
const tracy = trace(@src());
|
||||
defer tracy.end();
|
||||
|
||||
const gpa = zcu.gpa;
|
||||
const ip = &zcu.intern_pool;
|
||||
const func = zcu.funcInfo(func_index);
|
||||
|
||||
// We only care about the uncoerced function.
|
||||
// We need to do this for the "orphaned function" check below to be valid.
|
||||
const func_index = ip.unwrapCoercedFunc(maybe_coerced_func_index);
|
||||
|
||||
const func = zcu.funcInfo(maybe_coerced_func_index);
|
||||
const decl_index = func.owner_decl;
|
||||
const decl = zcu.declPtr(decl_index);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user