zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 1dbb616e73404b789b5c85491eb905b193b9b4cb (tree)
parent e098b287e18b8a7a4df0fdb48d32fb4376daba07
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Mon, 13 Mar 2023 18:23:53 -0700

Module: handle incremental update from ZIR with AST errors

Diffstat:
Msrc/Module.zig | 4+++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git 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();