diff options
| author | Veikka Tuominen <git@vexu.eu> | 2023-01-05 14:26:33 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2023-01-05 14:26:53 +0200 |
| commit | 8c4727f9ab61e4c99ab2a00f5751f9b11d274fbe (patch) | |
| tree | 84177f2c8532ab9ee8ca47bcecb22d93b3238ccf /src | |
| parent | 3e084d8de352927dad182f99aeb3f166b348c192 (diff) | |
| download | zig-8c4727f9ab61e4c99ab2a00f5751f9b11d274fbe.tar.gz zig-8c4727f9ab61e4c99ab2a00f5751f9b11d274fbe.zip | |
Sema: remove generic function from `monomorphed_funcs` on any error
Diffstat (limited to 'src')
| -rw-r--r-- | src/Module.zig | 8 | ||||
| -rw-r--r-- | src/Sema.zig | 1 |
2 files changed, 1 insertions, 8 deletions
diff --git a/src/Module.zig b/src/Module.zig index 24047f8798..bf54fc01fd 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -3519,14 +3519,6 @@ pub fn deinit(mod: *Module) void { pub fn destroyDecl(mod: *Module, decl_index: Decl.Index) void { const gpa = mod.gpa; { - if (mod.failed_decls.contains(decl_index)) { - blk: { - const errs = mod.comp.getAllErrorsAlloc() catch break :blk; - for (errs.list) |err| Compilation.AllErrors.Message.renderToStdErr(err, .no_color); - } - // TODO restore test case triggering this panic - @panic("Zig compiler bug: attempted to destroy declaration with an attached error"); - } const decl = mod.declPtr(decl_index); log.debug("destroy {*} ({s})", .{ decl, decl.name }); _ = mod.test_functions.swapRemove(decl_index); diff --git a/src/Sema.zig b/src/Sema.zig index bc861f170a..cba14396f9 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -7174,6 +7174,7 @@ fn instantiateGenericCall( return err; }, else => { + assert(mod.monomorphed_funcs.remove(new_module_func)); { errdefer new_decl_arena.deinit(); try new_decl.finalizeNewArena(&new_decl_arena); |
