aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig35
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(),
+ };
}
{