aboutsummaryrefslogtreecommitdiff
path: root/src/logger.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/logger.zig')
-rw-r--r--src/logger.zig25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/logger.zig b/src/logger.zig
index d1b89438b..f47637684 100644
--- a/src/logger.zig
+++ b/src/logger.zig
@@ -1108,6 +1108,31 @@ pub const Log = struct {
});
}
+ pub fn addRangeErrorFmtWithNote(
+ log: *Log,
+ source: ?*const Source,
+ r: Range,
+ allocator: std.mem.Allocator,
+ comptime fmt: string,
+ args: anytype,
+ comptime note_fmt: string,
+ note_args: anytype,
+ note_range: Range,
+ ) !void {
+ @setCold(true);
+ if (!Kind.shouldPrint(.err, log.level)) return;
+ log.errors += 1;
+
+ var notes = try allocator.alloc(Data, 1);
+ notes[0] = rangeData(source, note_range, allocPrint(allocator, note_fmt, note_args) catch unreachable);
+
+ try log.addMsg(.{
+ .kind = .err,
+ .data = rangeData(source, r, allocPrint(allocator, fmt, args) catch unreachable),
+ .notes = notes,
+ });
+ }
+
pub fn addWarning(log: *Log, source: ?*const Source, l: Loc, text: string) !void {
@setCold(true);
if (!Kind.shouldPrint(.warn, log.level)) return;