diff --git a/lib/std/os.zig b/lib/std/os.zig index ffc294f0e6..22cdf30351 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -2414,6 +2414,9 @@ pub fn unlinkatW(dirfd: fd_t, sub_path_w: []const u16, flags: u32) UnlinkatError pub const RenameError = error{ /// In WASI, this error may occur when the file descriptor does /// not hold the required rights to rename a resource by path relative to it. + /// + /// On Windows, this error may be returned instead of PathAlreadyExists when + /// renaming a directory over an existing directory. AccessDenied, FileBusy, DiskQuota, diff --git a/src/Package.zig b/src/Package.zig index 26be399c18..23a0549aa7 100644 --- a/src/Package.zig +++ b/src/Package.zig @@ -570,7 +570,7 @@ fn renameTmpIntoCache( }; continue; }, - error.PathAlreadyExists => { + error.PathAlreadyExists, error.AccessDenied => { // Package has been already downloaded and may already be in use on the system. cache_dir.deleteTree(tmp_dir_sub_path) catch |del_err| { std.log.warn("unable to delete temp directory: {s}", .{@errorName(del_err)});