aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-03-13 18:23:53 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-03-15 10:48:15 -0700
commit1dbb616e73404b789b5c85491eb905b193b9b4cb (patch)
treea00a468952f93f8a781aaf5f38ba297271fb1181 /src/Module.zig
parente098b287e18b8a7a4df0fdb48d32fb4376daba07 (diff)
downloadzig-1dbb616e73404b789b5c85491eb905b193b9b4cb.tar.gz
zig-1dbb616e73404b789b5c85491eb905b193b9b4cb.zip
Module: handle incremental update from ZIR with AST errors
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig
index 1520a7d1b2..c47e4fc234 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -3867,6 +3867,9 @@ fn updateZirRefs(mod: *Module, file: *File, old_zir: Zir) !void {
const gpa = mod.gpa;
const new_zir = file.zir;
+ // The root decl will be null if the previous ZIR had AST errors.
+ const root_decl = file.root_decl.unwrap() orelse return;
+
// Maps from old ZIR to new ZIR, struct_decl, enum_decl, etc. Any instruction which
// creates a namespace, gets mapped from old to new here.
var inst_map: std.AutoHashMapUnmanaged(Zir.Inst.Index, Zir.Inst.Index) = .{};
@@ -3884,7 +3887,6 @@ fn updateZirRefs(mod: *Module, file: *File, old_zir: Zir) !void {
var decl_stack: ArrayListUnmanaged(Decl.Index) = .{};
defer decl_stack.deinit(gpa);
- const root_decl = file.root_decl.unwrap().?;
try decl_stack.append(gpa, root_decl);
file.deleted_decls.clearRetainingCapacity();