Skip to content

Commit 3234e8d

Browse files
authored
Merge pull request #13071 from ziglang/resolve-cache-files
stage2: resolve file before putting them into cache
2 parents e563af1 + 6152f04 commit 3234e8d

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/Module.zig

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4478,9 +4478,17 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void {
44784478
try reportRetryableFileError(mod, file, "unable to load source: {s}", .{@errorName(err)});
44794479
return error.AnalysisFail;
44804480
};
4481-
const resolved_path = try file.pkg.root_src_directory.join(gpa, &.{
4482-
file.sub_file_path,
4483-
});
4481+
4482+
const resolved_path = std.fs.path.resolve(
4483+
gpa,
4484+
if (file.pkg.root_src_directory.path) |pkg_path|
4485+
&[_][]const u8{ pkg_path, file.sub_file_path }
4486+
else
4487+
&[_][]const u8{file.sub_file_path},
4488+
) catch |err| {
4489+
try reportRetryableFileError(mod, file, "unable to resolve path: {s}", .{@errorName(err)});
4490+
return error.AnalysisFail;
4491+
};
44844492
errdefer gpa.free(resolved_path);
44854493

44864494
try man.addFilePostContents(resolved_path, source.bytes, source.stat);

src/main.zig

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2763,7 +2763,14 @@ fn buildOutputType(
27632763
defer gpa.free(rel_src_path);
27642764
break :blk try Package.create(gpa, p, rel_src_path);
27652765
} else {
2766-
break :blk try Package.create(gpa, fs.path.dirname(src_path), fs.path.basename(src_path));
2766+
const root_src_dir_path = fs.path.dirname(src_path);
2767+
break :blk Package.create(gpa, root_src_dir_path, fs.path.basename(src_path)) catch |err| {
2768+
if (root_src_dir_path) |p| {
2769+
fatal("unable to open '{s}': {s}", .{ p, @errorName(err) });
2770+
} else {
2771+
return err;
2772+
}
2773+
};
27672774
}
27682775
} else null;
27692776
defer if (main_pkg) |p| p.destroy(gpa);
@@ -2792,7 +2799,7 @@ fn buildOutputType(
27922799
var zig_lib_directory: Compilation.Directory = if (override_lib_dir) |lib_dir| .{
27932800
.path = lib_dir,
27942801
.handle = fs.cwd().openDir(lib_dir, .{}) catch |err| {
2795-
fatal("unable to open zig lib directory from 'zig-lib-dir' argument or env, '{s}': {s}", .{ lib_dir, @errorName(err) });
2802+
fatal("unable to open zig lib directory '{s}': {s}", .{ lib_dir, @errorName(err) });
27962803
},
27972804
} else introspect.findZigLibDirFromSelfExe(arena, self_exe_path) catch |err| {
27982805
fatal("unable to find zig installation directory: {s}\n", .{@errorName(err)});

0 commit comments

Comments
 (0)