]> git.lizzy.rs Git - rust.git/commitdiff
rustc: don't hash the --extern crate name, but the original one, in DefPath.
authorEduard Burtescu <edy.burt@gmail.com>
Sun, 18 Sep 2016 08:12:29 +0000 (11:12 +0300)
committerEduard Burtescu <edy.burt@gmail.com>
Tue, 20 Sep 2016 17:08:06 +0000 (20:08 +0300)
src/librustc/hir/map/definitions.rs
src/librustc/ty/context.rs
src/librustc/ty/item_path.rs

index af751e51d931e1aff09c9b5aa92fb23cc75c2aa6..f404f60cc9cefa766afeb4ec3f814f6ed68bddef 100644 (file)
@@ -115,11 +115,7 @@ pub fn make<FN>(start_krate: CrateNum,
     pub fn to_string(&self, tcx: TyCtxt) -> String {
         let mut s = String::with_capacity(self.data.len() * 16);
 
-        if self.krate == LOCAL_CRATE {
-            s.push_str(&tcx.crate_name(self.krate));
-        } else {
-            s.push_str(&tcx.sess.cstore.original_crate_name(self.krate));
-        }
+        s.push_str(&tcx.original_crate_name(self.krate));
         s.push_str("/");
         s.push_str(&tcx.crate_disambiguator(self.krate));
 
@@ -141,7 +137,7 @@ pub fn deterministic_hash(&self, tcx: TyCtxt) -> u64 {
     }
 
     pub fn deterministic_hash_to<H: Hasher>(&self, tcx: TyCtxt, state: &mut H) {
-        tcx.crate_name(self.krate).hash(state);
+        tcx.original_crate_name(self.krate).hash(state);
         tcx.crate_disambiguator(self.krate).hash(state);
         self.data.hash(state);
     }
index 0faf6750abd978fe86397b4ce84da78d34226596..d5e5f4402bb854d8d38884c94a928be0f92df168 100644 (file)
@@ -513,6 +513,14 @@ pub fn crate_name(self, cnum: CrateNum) -> token::InternedString {
         }
     }
 
+    pub fn original_crate_name(self, cnum: CrateNum) -> token::InternedString {
+        if cnum == LOCAL_CRATE {
+            self.crate_name.clone()
+        } else {
+            self.sess.cstore.original_crate_name(cnum)
+        }
+    }
+
     pub fn crate_disambiguator(self, cnum: CrateNum) -> token::InternedString {
         if cnum == LOCAL_CRATE {
             self.sess.local_crate_disambiguator()
index ca12dde73b84b3316adc67a2a2397028c95c56c6..fdf5185eb69e2f205e3aa3d0aabe5daaa5d7e422 100644 (file)
@@ -101,11 +101,7 @@ pub fn push_krate_path<T>(self, buffer: &mut T, cnum: CrateNum)
             RootMode::Absolute => {
                 // In absolute mode, just write the crate name
                 // unconditionally.
-                if cnum == LOCAL_CRATE {
-                    buffer.push(&self.crate_name(cnum));
-                } else {
-                    buffer.push(&self.sess.cstore.original_crate_name(cnum));
-                }
+                buffer.push(&self.original_crate_name(cnum));
             }
         }
     }