Skip to content

Commit

Permalink
Remap after prepending cwd
Browse files Browse the repository at this point in the history
  • Loading branch information
cbeuw committed May 16, 2021
1 parent b76ce69 commit 1ced98a
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions compiler/rustc_metadata/src/rmeta/encoder.rs
Expand Up @@ -497,11 +497,22 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
let working_dir = &self.tcx.sess.working_dir;
match working_dir {
RealFileName::LocalPath(absolute) => {
// If working_dir has not been remapped, then we emit a
// LocalPath variant as it's likely to be a valid path
RealFileName::LocalPath(
Path::new(absolute).join(path_to_file),
)
// Although neither working_dir or the file name were subject
// to path remapping, the concatenation between the two may
// be. Hence we need to do a remapping here.
let joined = Path::new(absolute).join(path_to_file);
let (joined, remapped) =
source_map.path_mapping().map_prefix(joined);
if remapped {
RealFileName::Remapped {
local_path: None,
virtual_name: joined,
}
} else {
RealFileName::LocalPath(
Path::new(absolute).join(path_to_file),
)
}
}
RealFileName::Remapped { local_path: _, virtual_name } => {
// If working_dir has been remapped, then we emit
Expand Down

0 comments on commit 1ced98a

Please sign in to comment.