motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit c6024691cfc3fa329cf1b7ac9fcb0855b7211aa0 (tree)
parent ff61c428793ff382c8d521638b416ca288e53de5
Author: Jacob Young <jacobly0@users.noreply.github.com>
Date:   Sun, 27 Aug 2023 16:18:51 -0400

Sema: implement reference trace with called from here notes

Closes #15124

Diffstat:
Msrc/Module.zig | 6------
Msrc/Sema.zig | 5++---
2 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/Module.zig b/src/Module.zig @@ -1566,12 +1566,6 @@ pub const ErrorMsg = struct { gpa.free(err_msg.reference_trace); err_msg.* = undefined; } - - pub fn clearTrace(err_msg: *ErrorMsg, gpa: Allocator) void { - if (err_msg.reference_trace.len == 0) return; - gpa.free(err_msg.reference_trace); - err_msg.reference_trace = &.{}; - } }; /// Canonical reference to a position within a source file. diff --git a/src/Sema.zig b/src/Sema.zig @@ -2409,8 +2409,8 @@ fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError { break :blk default_reference_trace_len; }; - var referenced_by = if (sema.func_index != .none) - mod.funcOwnerDeclIndex(sema.func_index) + var referenced_by = if (sema.owner_func_index != .none) + mod.funcOwnerDeclIndex(sema.owner_func_index) else sema.owner_decl_index; var reference_stack = std.ArrayList(Module.ErrorMsg.Trace).init(gpa); @@ -7430,7 +7430,6 @@ fn analyzeCall( const err_msg = sema.err orelse return err; if (mem.eql(u8, err_msg.msg, recursive_msg)) return err; try sema.errNote(block, call_src, err_msg, "called from here", .{}); - err_msg.clearTrace(gpa); return err; }, else => |e| return e,