diff options
Diffstat (limited to 'src/Module.zig')
| -rw-r--r-- | src/Module.zig | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/src/Module.zig b/src/Module.zig index aa5cddd35c..f9cfc5e54e 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -3324,26 +3324,21 @@ pub fn astGenFile(mod: *Module, file: *File) !void { .parent_decl_node = 0, .lazy = .{ .byte_abs = byte_abs }, }, err_msg, "invalid byte: '{'}'", .{std.zig.fmtEscapes(source[byte_abs..][0..1])}); - } else if (parse_err.tag == .decl_between_fields) { - try mod.errNoteNonLazy(.{ - .file_scope = file, - .parent_decl_node = 0, - .lazy = .{ .byte_abs = token_starts[file.tree.errors[1].token] }, - }, err_msg, "field before declarations here", .{}); - try mod.errNoteNonLazy(.{ - .file_scope = file, - .parent_decl_node = 0, - .lazy = .{ .byte_abs = token_starts[file.tree.errors[2].token] }, - }, err_msg, "field after declarations here", .{}); - } else if (parse_err.tag == .c_style_container) { - const note = file.tree.errors[1]; - try mod.errNoteNonLazy(.{ - .file_scope = file, - .parent_decl_node = 0, - .lazy = .{ .byte_abs = token_starts[note.token] }, - }, err_msg, "to declare a container do 'const {s} = {s}'", .{ - file.tree.tokenSlice(note.token), note.extra.expected_tag.symbol(), - }); + } + + for (file.tree.errors[1..]) |note| { + if (!note.is_note) break; + + try file.tree.renderError(note, msg.writer()); + err_msg.notes = try mod.gpa.realloc(err_msg.notes, err_msg.notes.len + 1); + err_msg.notes[err_msg.notes.len - 1] = .{ + .src_loc = .{ + .file_scope = file, + .parent_decl_node = 0, + .lazy = .{ .byte_abs = token_starts[note.token] }, + }, + .msg = msg.toOwnedSlice(), + }; } { |
