aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorPhilippe Pittoli <karchnu@karchnu.fr>2022-05-06 01:03:03 +0200
committerAndrew Kelley <andrew@ziglang.org>2022-12-14 14:11:59 -0700
commitf65cdef7c8bfe7a47e1c30cfa3903ca2d53495cf (patch)
tree0978f79f6f7a6c0aa6324f9d582a9587f0631480 /src/Module.zig
parent4af305b30acdefb9da380b21b446d2b31b5a6295 (diff)
downloadzig-f65cdef7c8bfe7a47e1c30cfa3903ca2d53495cf.tar.gz
zig-f65cdef7c8bfe7a47e1c30cfa3903ca2d53495cf.zip
std.fs.Dir.statFile: use fstatat
This avoids extra syscalls.
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/Module.zig b/src/Module.zig
index 83294f3068..d4af06f896 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -4137,14 +4137,19 @@ pub fn populateBuiltinFile(mod: *Module) !void {
};
}
} else |err| switch (err) {
- error.BadPathName => unreachable, // it's always "builtin.zig"
error.NameTooLong => unreachable, // it's always "builtin.zig"
- error.PipeBusy => unreachable, // it's not a pipe
- error.WouldBlock => unreachable, // not asking for non-blocking I/O
-
error.FileNotFound => try writeBuiltinFile(file, builtin_pkg),
-
- else => |e| return e,
+ else => |e| {
+ if (builtin.os.tag == .windows) {
+ switch (e) {
+ error.BadPathName => unreachable, // it's always "builtin.zig"
+ error.PipeBusy => unreachable, // it's not a pipe
+ error.WouldBlock => unreachable, // not asking for non-blocking I/O
+ else => return e,
+ }
+ }
+ return e;
+ },
}
file.tree = try std.zig.parse(gpa, file.source);