Commit 3cc19cd865

Andrew Kelley <andrew@ziglang.org>
2024-10-19 09:09:52
better error messages
1 parent d1ecb74
Changed files (2)
src
test
link
src/link.zig
@@ -1383,12 +1383,12 @@ pub const File = struct {
                 for (comp.link_inputs) |input| {
                     base.loadInput(input) catch |err| switch (err) {
                         error.LinkFailure => return, // error reported via link_diags
-                        else => |e| {
-                            if (input.path()) |path| {
-                                comp.link_diags.addParseError(path, "failed to parse linker input: {s}", .{@errorName(e)});
-                            } else {
-                                comp.link_diags.addError("failed to {s}: {s}", .{ input.taskName(), @errorName(e) });
-                            }
+                        else => |e| switch (input) {
+                            .dso => |dso| comp.link_diags.addParseError(dso.path, "failed to parse shared library: {s}", .{@errorName(e)}),
+                            .object => |obj| comp.link_diags.addParseError(obj.path, "failed to parse object: {s}", .{@errorName(e)}),
+                            .archive => |obj| comp.link_diags.addParseError(obj.path, "failed to parse archive: {s}", .{@errorName(e)}),
+                            .res => |res| comp.link_diags.addParseError(res.path, "failed to parse Windows resource: {s}", .{@errorName(e)}),
+                            .dso_exact => comp.link_diags.addError("failed to handle dso_exact: {s}", .{@errorName(e)}),
                         },
                     };
                 }
test/link/elf.zig
@@ -3910,7 +3910,7 @@ fn testUnknownFileTypeError(b: *Build, opts: Options) *Step {
     exe.linkLibC();
 
     expectLinkErrors(exe, test_step, .{
-        .contains = "error: failed to parse shared object: BadMagic",
+        .contains = "error: failed to parse shared library: BadMagic",
     });
 
     return test_step;