about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/mir/mono.rs
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2021-06-01 16:32:13 +0200
committerbjorn3 <bjorn3@users.noreply.github.com>2021-06-07 10:37:45 +0200
commit8176ab8bc18fdd7d3c2cf7f720c51166364c33a3 (patch)
tree474b75784053dd164149e0aafc979b23bb45ba3c /compiler/rustc_middle/src/mir/mono.rs
parent6c5b6985fdce0921fe4ac0247fd026355953c1ea (diff)
downloadrust-8176ab8bc18fdd7d3c2cf7f720c51166364c33a3.tar.gz
rust-8176ab8bc18fdd7d3c2cf7f720c51166364c33a3.zip
Revert "Merge CrateDisambiguator into StableCrateId"
This reverts commit d0ec85d3fb6d322496cb8f4bc1c21e19f23284ad.
Diffstat (limited to 'compiler/rustc_middle/src/mir/mono.rs')
-rw-r--r--compiler/rustc_middle/src/mir/mono.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/compiler/rustc_middle/src/mir/mono.rs b/compiler/rustc_middle/src/mir/mono.rs
index c354cdd985b..74650f50a1c 100644
--- a/compiler/rustc_middle/src/mir/mono.rs
+++ b/compiler/rustc_middle/src/mir/mono.rs
@@ -490,18 +490,15 @@ impl CodegenUnitNameBuilder<'tcx> {
             // local crate's ID. Otherwise there can be collisions between CGUs
             // instantiating stuff for upstream crates.
             let local_crate_id = if cnum != LOCAL_CRATE {
-                let local_stable_crate_id = tcx.sess.local_stable_crate_id();
-                format!(
-                    "-in-{}.{:08x}",
-                    tcx.crate_name(LOCAL_CRATE),
-                    local_stable_crate_id.to_u64()
-                )
+                let local_crate_disambiguator = format!("{}", tcx.crate_disambiguator(LOCAL_CRATE));
+                format!("-in-{}.{}", tcx.crate_name(LOCAL_CRATE), &local_crate_disambiguator[0..8])
             } else {
                 String::new()
             };
 
-            let stable_crate_id = tcx.sess.local_stable_crate_id();
-            format!("{}.{:08x}{}", tcx.crate_name(cnum), stable_crate_id.to_u64(), local_crate_id)
+            let crate_disambiguator = tcx.crate_disambiguator(cnum).to_string();
+            // Using a shortened disambiguator of about 40 bits
+            format!("{}.{}{}", tcx.crate_name(cnum), &crate_disambiguator[0..8], local_crate_id)
         });
 
         write!(cgu_name, "{}", crate_prefix).unwrap();