mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
Fix abortAnonDecl()
This commit is contained in:
parent
8d42500699
commit
806eee8e99
@ -4064,9 +4064,19 @@ pub fn deleteUnusedDecl(mod: *Module, decl: *Decl) void {
|
||||
|
||||
pub fn abortAnonDecl(mod: *Module, decl: *Decl) void {
|
||||
log.debug("abortAnonDecl {*} ({s})", .{ decl, decl.name });
|
||||
assert(decl.namespace.anon_decls.swapRemove(decl));
|
||||
assert(decl.dependants.count() == 0);
|
||||
assert(decl.dependencies.count() == 0);
|
||||
|
||||
const owner_namespace = if (decl.namespace.getDecl() == decl and decl.namespace.parent != null) decl.namespace.parent.? else decl.namespace;
|
||||
assert(owner_namespace.anon_decls.swapRemove(decl));
|
||||
|
||||
const dependants = decl.dependants.keys();
|
||||
for (dependants) |dep| {
|
||||
dep.removeDependency(decl);
|
||||
}
|
||||
|
||||
for (decl.dependencies.keys()) |dep| {
|
||||
dep.removeDependant(decl);
|
||||
}
|
||||
|
||||
decl.destroy(mod);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user