aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-07-02 12:33:05 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-07-02 13:28:31 -0700
commitc5c23db6278332044c0606d78419000b68185e0c (patch)
treee0534dd3eaf43d5dd776eb1120ca364810546283 /src/Module.zig
parent7a2e0d98109d39f06400dfbc03c12695557100c6 (diff)
downloadzig-c5c23db6278332044c0606d78419000b68185e0c.tar.gz
zig-c5c23db6278332044c0606d78419000b68185e0c.zip
tokenizer: clean up invalid token error
It now displays the byte with proper printability handling. This makes the relevant compile error test case no longer a regression in quality from stage1 to stage2.
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Module.zig b/src/Module.zig
index 2e421ea65b..4b82a6df07 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -2480,11 +2480,12 @@ pub fn astGenFile(mod: *Module, file: *Scope.File) !void {
};
if (token_tags[parse_err.token] == .invalid) {
const bad_off = @intCast(u32, file.tree.tokenSlice(parse_err.token).len);
+ const byte_abs = token_starts[parse_err.token] + bad_off;
try mod.errNoteNonLazy(.{
.file_scope = file,
.parent_decl_node = 0,
- .lazy = .{ .byte_abs = token_starts[parse_err.token] + bad_off },
- }, err_msg, "invalid byte here", .{});
+ .lazy = .{ .byte_abs = byte_abs },
+ }, err_msg, "invalid byte: '{'}'", .{ std.zig.fmtEscapes(source[byte_abs..][0..1]) });
}
{