1
Fork 0

Properly apply path prefix remapping paths emitted into debuginfo.

This commit is contained in:
Michael Woerister 2022-05-05 17:26:22 +02:00
parent 9e7b0ff2e1
commit 6411fef3ab
9 changed files with 193 additions and 73 deletions

View file

@ -335,8 +335,8 @@ impl fmt::Display for FileNameDisplay<'_> {
}
}
impl FileNameDisplay<'_> {
pub fn to_string_lossy(&self) -> Cow<'_, str> {
impl<'a> FileNameDisplay<'a> {
pub fn to_string_lossy(&self) -> Cow<'a, str> {
match self.inner {
FileName::Real(ref inner) => inner.to_string_lossy(self.display_pref),
_ => Cow::from(format!("{}", self)),
@ -1153,7 +1153,7 @@ impl FromStr for SourceFileHashAlgorithm {
}
/// The hash of the on-disk source file used for debug info.
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
#[derive(HashStable_Generic, Encodable, Decodable)]
pub struct SourceFileHash {
pub kind: SourceFileHashAlgorithm,

View file

@ -1099,6 +1099,8 @@ impl FilePathMapping {
/// the path was affected by the mapping.
pub fn map_prefix(&self, path: PathBuf) -> (PathBuf, bool) {
if path.as_os_str().is_empty() {
// Exit early if the path is empty and therefore there's nothing to remap.
// This is mostly to reduce spam for `RUSTC_LOG=[remap_path_prefix]`.
return (path, false);
}