diff options
| author | bors <bors@rust-lang.org> | 2020-06-01 15:42:51 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-06-01 15:42:51 +0000 |
| commit | 49cae55760da0a43428eba73abcb659bb70cf2e4 (patch) | |
| tree | 4aaa1c51870e6e83fda6d1c86d6bac54457ab89b /src/librustc_metadata | |
| parent | 02c25b359e667d2eba0da4d9e75408d675b7a4d5 (diff) | |
| parent | 68a0acd6341440bd6ae6e0b612f558b10e6d522f (diff) | |
| download | rust-1.44.0.tar.gz rust-1.44.0.zip | |
Auto merge of #72883 - Mark-Simulacrum:stable-next, r=Mark-Simulacrum 1.44.0
[stable] 1.44 release This includes a release notes update as usual and a backport of #72767. r? @ghost
Diffstat (limited to 'src/librustc_metadata')
| -rw-r--r-- | src/librustc_metadata/rmeta/decoder.rs | 25 | ||||
| -rw-r--r-- | src/librustc_metadata/rmeta/encoder.rs | 1 |
2 files changed, 17 insertions, 9 deletions
diff --git a/src/librustc_metadata/rmeta/decoder.rs b/src/librustc_metadata/rmeta/decoder.rs index e1ac4d13416..cd981626035 100644 --- a/src/librustc_metadata/rmeta/decoder.rs +++ b/src/librustc_metadata/rmeta/decoder.rs @@ -1485,15 +1485,22 @@ impl<'a, 'tcx> CrateMetadataRef<'a> { if let Some(virtual_dir) = virtual_rust_source_base_dir { if let Some(real_dir) = &sess.real_rust_source_base_dir { - if let rustc_span::FileName::Real(path) = name { - if let Ok(rest) = path.strip_prefix(virtual_dir) { - let new_path = real_dir.join(rest); - debug!( - "try_to_translate_virtual_to_real: `{}` -> `{}`", - path.display(), - new_path.display(), - ); - *path = new_path; + if let rustc_span::FileName::Real(old_name) = name { + if let rustc_span::RealFileName::Named(one_path) = old_name { + if let Ok(rest) = one_path.strip_prefix(virtual_dir) { + let virtual_name = one_path.clone(); + let new_path = real_dir.join(rest); + debug!( + "try_to_translate_virtual_to_real: `{}` -> `{}`", + virtual_name.display(), + new_path.display(), + ); + let new_name = rustc_span::RealFileName::Devirtualized { + local_path: new_path, + virtual_name, + }; + *old_name = new_name; + } } } } diff --git a/src/librustc_metadata/rmeta/encoder.rs b/src/librustc_metadata/rmeta/encoder.rs index 9c9869c8557..b739882b7aa 100644 --- a/src/librustc_metadata/rmeta/encoder.rs +++ b/src/librustc_metadata/rmeta/encoder.rs @@ -398,6 +398,7 @@ impl<'tcx> EncodeContext<'tcx> { // any relative paths are potentially relative to a // wrong directory. FileName::Real(ref name) => { + let name = name.stable_name(); let mut adapted = (**source_file).clone(); adapted.name = Path::new(&working_dir).join(name).into(); adapted.name_hash = { |
