From 3c6d9ec77d00eeb7e20d5f28dff684a0cabe21eb Mon Sep 17 00:00:00 2001 From: Ben Kimock Date: Sun, 30 Apr 2023 14:28:30 -0400 Subject: [PATCH] Use the full Fingerprint when stringifying Svh --- compiler/rustc_data_structures/src/fingerprint.rs | 5 +++++ compiler/rustc_data_structures/src/svh.rs | 10 +++++----- compiler/rustc_incremental/src/persist/fs.rs | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/compiler/rustc_data_structures/src/fingerprint.rs b/compiler/rustc_data_structures/src/fingerprint.rs index 6fa76981408..9995c08345c 100644 --- a/compiler/rustc_data_structures/src/fingerprint.rs +++ b/compiler/rustc_data_structures/src/fingerprint.rs @@ -64,6 +64,11 @@ impl Fingerprint { ) } + #[inline] + pub(crate) fn as_u128(self) -> u128 { + u128::from(self.1) << 64 | u128::from(self.0) + } + // Combines two hashes in an order independent way. Make sure this is what // you want. #[inline] diff --git a/compiler/rustc_data_structures/src/svh.rs b/compiler/rustc_data_structures/src/svh.rs index a3d2724fcdb..71679086f16 100644 --- a/compiler/rustc_data_structures/src/svh.rs +++ b/compiler/rustc_data_structures/src/svh.rs @@ -23,18 +23,18 @@ impl Svh { Svh { hash } } - pub fn as_u64(&self) -> u64 { - self.hash.to_smaller_hash().as_u64() + pub fn as_u128(self) -> u128 { + self.hash.as_u128() } - pub fn to_string(&self) -> String { - format!("{:016x}", self.hash.to_smaller_hash()) + pub fn to_hex(self) -> String { + format!("{:032x}", self.hash.as_u128()) } } impl fmt::Display for Svh { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.pad(&self.to_string()) + f.pad(&self.to_hex()) } } diff --git a/compiler/rustc_incremental/src/persist/fs.rs b/compiler/rustc_incremental/src/persist/fs.rs index ec6d61f9e5f..e3c688b3e98 100644 --- a/compiler/rustc_incremental/src/persist/fs.rs +++ b/compiler/rustc_incremental/src/persist/fs.rs @@ -346,7 +346,7 @@ pub fn finalize_session_directory(sess: &Session, svh: Option) { let mut new_sub_dir_name = String::from(&old_sub_dir_name[..=dash_indices[2]]); // Append the svh - base_n::push_str(svh.as_u64() as u128, INT_ENCODE_BASE, &mut new_sub_dir_name); + base_n::push_str(svh.as_u128(), INT_ENCODE_BASE, &mut new_sub_dir_name); // Create the full path let new_path = incr_comp_session_dir.parent().unwrap().join(new_sub_dir_name);