aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-11-30 19:12:05 +0200
committerVeikka Tuominen <git@vexu.eu>2022-11-30 19:12:05 +0200
commitfba33ee58cc3dcd832fe9422be4dc05228afce76 (patch)
tree2a640a67583b9c68d8d479f13e76162b6adb1c5a /src/Sema.zig
parent71038c42f554da86ee23c9c448d39e457d5818eb (diff)
downloadzig-fba33ee58cc3dcd832fe9422be4dc05228afce76.tar.gz
zig-fba33ee58cc3dcd832fe9422be4dc05228afce76.zip
Sema: print line column and path when using `--debug-compile-errors`
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index be44ca6a5f..f0b91553e2 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -2189,10 +2189,16 @@ fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError {
@setCold(true);
if (crash_report.is_enabled and sema.mod.comp.debug_compile_errors) {
- std.debug.print("compile error during Sema: {s}, src: {s}:{}\n", .{
+ const err_path = err_msg.src_loc.file_scope.fullPath(sema.mod.gpa) catch unreachable;
+ const err_source = err_msg.src_loc.file_scope.getSource(sema.mod.gpa) catch unreachable;
+ const err_span = err_msg.src_loc.span(sema.mod.gpa) catch unreachable;
+ const err_loc = std.zig.findLineColumn(err_source.bytes, err_span.main);
+ std.debug.print("compile error during Sema:\n{s}:{d}:{d}: error: {s}\n{s}\n\n", .{
+ err_path,
+ err_loc.line + 1,
+ err_loc.column + 1,
err_msg.msg,
- err_msg.src_loc.file_scope.sub_file_path,
- err_msg.src_loc.lazy,
+ err_loc.source_line,
});
crash_report.compilerPanic("unexpected compile error occurred", null, null);
}