about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJoshua Nelson <jyn514@gmail.com>2021-04-22 19:02:09 -0400
committerJoshua Nelson <jyn514@gmail.com>2021-04-22 19:02:09 -0400
commit3bef65ffaf3ea435fa653bd99c72b3adde93ea95 (patch)
tree9a589148bbe07e33c271952bca7e922d578c679d /src
parent5407a69aa4a816fdfd9cf6f659643f78659c1f88 (diff)
downloadrust-3bef65ffaf3ea435fa653bd99c72b3adde93ea95.tar.gz
rust-3bef65ffaf3ea435fa653bd99c72b3adde93ea95.zip
Remove `name` field from ExternalCrate
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/clean/mod.rs1
-rw-r--r--src/librustdoc/clean/types.rs5
-rw-r--r--src/librustdoc/clean/utils.rs3
-rw-r--r--src/librustdoc/formats/cache.rs7
-rw-r--r--src/librustdoc/html/render/cache.rs3
5 files changed, 12 insertions, 7 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs
index 1b8c82b8323..2ea119626fe 100644
--- a/src/librustdoc/clean/mod.rs
+++ b/src/librustdoc/clean/mod.rs
@@ -194,7 +194,6 @@ impl Clean<ExternalCrate> for CrateNum {
 
         ExternalCrate {
             crate_num: *self,
-            name: tcx.crate_name(*self),
             attrs: tcx.get_attrs(root).clean(cx),
             primitives,
             keywords,
diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs
index b24d441f0f8..a28e94eb2c8 100644
--- a/src/librustdoc/clean/types.rs
+++ b/src/librustdoc/clean/types.rs
@@ -73,7 +73,6 @@ crate struct TraitWithExtraInfo {
 #[derive(Clone, Debug)]
 crate struct ExternalCrate {
     crate crate_num: CrateNum,
-    crate name: Symbol,
     crate attrs: Attributes,
     crate primitives: ThinVec<(DefId, PrimitiveType)>,
     crate keywords: ThinVec<(DefId, Symbol)>,
@@ -85,6 +84,10 @@ impl ExternalCrate {
         let krate_span = tcx.def_span(root);
         tcx.sess.source_map().span_to_filename(krate_span)
     }
+
+    crate fn name(&self, tcx: TyCtxt<'_>) -> Symbol {
+        tcx.crate_name(self.crate_num)
+    }
 }
 
 /// Anything with a source location and set of attributes and, optionally, a
diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs
index 7d058f9e92c..6f230e27534 100644
--- a/src/librustdoc/clean/utils.rs
+++ b/src/librustdoc/clean/utils.rs
@@ -56,7 +56,8 @@ crate fn krate(cx: &mut DocContext<'_>) -> Crate {
 
     let local_crate = LOCAL_CRATE.clean(cx);
     let src = local_crate.src(cx.tcx);
-    let ExternalCrate { name, primitives, keywords, .. } = local_crate;
+    let name = local_crate.name(cx.tcx);
+    let ExternalCrate { primitives, keywords, .. } = local_crate;
     {
         let m = match *module.kind {
             ItemKind::ModuleItem(ref mut m) => m,
diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs
index 5766ed7497d..5c011c5a13c 100644
--- a/src/librustdoc/formats/cache.rs
+++ b/src/librustdoc/formats/cache.rs
@@ -162,12 +162,13 @@ impl Cache {
                 },
                 _ => PathBuf::new(),
             };
-            let extern_url = extern_html_root_urls.get(&*e.name.as_str()).map(|u| &**u);
+            let name = e.name(tcx);
+            let extern_url = extern_html_root_urls.get(&*name.as_str()).map(|u| &**u);
             self.extern_locations
-                .insert(n, (e.name, src_root, extern_location(e, extern_url, &dst)));
+                .insert(n, (name, src_root, extern_location(e, extern_url, &dst, tcx)));
 
             let did = DefId { krate: n, index: CRATE_DEF_INDEX };
-            self.external_paths.insert(did, (vec![e.name.to_string()], ItemType::Module));
+            self.external_paths.insert(did, (vec![name.to_string()], ItemType::Module));
         }
 
         // Cache where all known primitives have their documentation located.
diff --git a/src/librustdoc/html/render/cache.rs b/src/librustdoc/html/render/cache.rs
index 2265905dcba..b8544a0f439 100644
--- a/src/librustdoc/html/render/cache.rs
+++ b/src/librustdoc/html/render/cache.rs
@@ -31,10 +31,11 @@ crate fn extern_location(
     e: &clean::ExternalCrate,
     extern_url: Option<&str>,
     dst: &Path,
+    tcx: TyCtxt<'_>,
 ) -> ExternalLocation {
     use ExternalLocation::*;
     // See if there's documentation generated into the local directory
-    let local_location = dst.join(&*e.name.as_str());
+    let local_location = dst.join(&*e.name(tcx).as_str());
     if local_location.is_dir() {
         return Local;
     }