Commit a5d5c097f5

mlugg <mlugg@mlugg.co.uk>
2024-07-04 11:21:30
Sema: add missing references
1 parent eae9aa8
Changed files (1)
src/Sema.zig
@@ -877,6 +877,7 @@ pub fn deinit(sema: *Sema) void {
     sema.maybe_comptime_allocs.deinit(gpa);
     sema.comptime_allocs.deinit(gpa);
     sema.exports.deinit(gpa);
+    sema.references.deinit(gpa);
     sema.* = undefined;
 }
 
@@ -2824,6 +2825,7 @@ fn zirStructDecl(
 
     try mod.finalizeAnonDecl(new_decl_index);
     try mod.comp.work_queue.writeItem(.{ .resolve_type_fully = wip_ty.index });
+    try sema.addReferenceEntry(src, AnalUnit.wrap(.{ .decl = new_decl_index }));
     return Air.internedToRef(wip_ty.finish(ip, new_decl_index, new_namespace_index));
 }
 
@@ -3325,6 +3327,7 @@ fn zirUnionDecl(
 
     try mod.finalizeAnonDecl(new_decl_index);
     try mod.comp.work_queue.writeItem(.{ .resolve_type_fully = wip_ty.index });
+    try sema.addReferenceEntry(src, AnalUnit.wrap(.{ .decl = new_decl_index }));
     return Air.internedToRef(wip_ty.finish(ip, new_decl_index, new_namespace_index));
 }
 
@@ -21966,6 +21969,7 @@ fn reifyUnion(
 
     try mod.finalizeAnonDecl(new_decl_index);
     try mod.comp.work_queue.writeItem(.{ .resolve_type_fully = wip_ty.index });
+    try sema.addReferenceEntry(src, AnalUnit.wrap(.{ .decl = new_decl_index }));
     return Air.internedToRef(wip_ty.finish(ip, new_decl_index, .none));
 }
 
@@ -22231,6 +22235,7 @@ fn reifyStruct(
 
     try mod.finalizeAnonDecl(new_decl_index);
     try mod.comp.work_queue.writeItem(.{ .resolve_type_fully = wip_ty.index });
+    try sema.addReferenceEntry(src, AnalUnit.wrap(.{ .decl = new_decl_index }));
     return Air.internedToRef(wip_ty.finish(ip, new_decl_index, .none));
 }