diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-02-13 12:34:41 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-02-13 13:45:35 +0200 |
| commit | ddd6de86f7eb71814d3605d3e0ea9ed01d075613 (patch) | |
| tree | 4d6373402a99ed70eba6aa66dbcc3624036dbe30 /src | |
| parent | 0b7347fd18eee7dd829cd9aaed3683123d84859b (diff) | |
| download | zig-ddd6de86f7eb71814d3605d3e0ea9ed01d075613.tar.gz zig-ddd6de86f7eb71814d3605d3e0ea9ed01d075613.zip | |
parser: make missing semicolon error point to the end of the previous token
Diffstat (limited to 'src')
| -rw-r--r-- | src/Module.zig | 3 | ||||
| -rw-r--r-- | src/main.zig | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/Module.zig b/src/Module.zig index 3631e41f25..2cd01acd59 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -2995,13 +2995,14 @@ pub fn astGenFile(mod: *Module, file: *File) !void { const token_starts = file.tree.tokens.items(.start); const token_tags = file.tree.tokens.items(.tag); + const extra_offset = file.tree.errorOffset(parse_err.tag, parse_err.token); try file.tree.renderError(parse_err, msg.writer()); const err_msg = try gpa.create(ErrorMsg); err_msg.* = .{ .src_loc = .{ .file_scope = file, .parent_decl_node = 0, - .lazy = .{ .byte_abs = token_starts[parse_err.token] }, + .lazy = .{ .byte_abs = token_starts[parse_err.token] + extra_offset }, }, .msg = msg.toOwnedSlice(), }; diff --git a/src/main.zig b/src/main.zig index 75655d6a2a..12e9f88088 100644 --- a/src/main.zig +++ b/src/main.zig @@ -4040,13 +4040,14 @@ fn printErrMsgToStdErr( notes_len += 1; } + const extra_offset = tree.errorOffset(parse_error.tag, parse_error.token); const message: Compilation.AllErrors.Message = .{ .src = .{ .src_path = path, .msg = text, - .byte_offset = @intCast(u32, start_loc.line_start), + .byte_offset = @intCast(u32, start_loc.line_start) + extra_offset, .line = @intCast(u32, start_loc.line), - .column = @intCast(u32, start_loc.column), + .column = @intCast(u32, start_loc.column) + extra_offset, .source_line = source_line, .notes = notes_buffer[0..notes_len], }, |
