diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 88fffaecb937b..50c6060d56fb9 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -118,7 +118,6 @@ impl From for ItemId { crate struct Crate { crate module: Item, crate externs: Vec, - crate primitives: ThinVec<(DefId, PrimitiveType)>, /// Only here so that they can be filtered through the rustdoc passes. crate external_traits: Rc>>, crate collapsed: bool, @@ -126,7 +125,7 @@ crate struct Crate { // `Crate` is frequently moved by-value. Make sure it doesn't unintentionally get bigger. #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -rustc_data_structures::static_assert_size!(Crate, 104); +rustc_data_structures::static_assert_size!(Crate, 96); impl Crate { crate fn name(&self, tcx: TyCtxt<'_>) -> Symbol { diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index 2fae3163a1a1a..04ac1d8bd066f 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -76,13 +76,7 @@ crate fn krate(cx: &mut DocContext<'_>) -> Crate { })); } - Crate { - module, - externs, - primitives, - external_traits: cx.external_traits.clone(), - collapsed: false, - } + Crate { module, externs, external_traits: cx.external_traits.clone(), collapsed: false } } fn external_generic_args( diff --git a/src/librustdoc/passes/collect_trait_impls.rs b/src/librustdoc/passes/collect_trait_impls.rs index 7a4198198fa69..aac22c02c9729 100644 --- a/src/librustdoc/passes/collect_trait_impls.rs +++ b/src/librustdoc/passes/collect_trait_impls.rs @@ -20,8 +20,6 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate { (synth.fold_crate(krate), synth.impls) }); - let prims: FxHashSet = krate.primitives.iter().map(|p| p.1).collect(); - let crate_items = { let mut coll = ItemCollector::new(); krate = cx.sess().time("collect_items_for_trait_impls", || coll.fold_crate(krate)); @@ -51,7 +49,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate { } } - let mut cleaner = BadImplStripper { prims, items: crate_items }; + let mut cleaner = BadImplStripper { items: crate_items }; let mut type_did_to_deref_target: FxHashMap = FxHashMap::default(); // Follow all `Deref` targets of included items and recursively add them as valid @@ -62,9 +60,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate { ) { if let Some(target) = map.get(&type_did) { debug!("add_deref_target: type {:?}, target {:?}", type_did, target); - if let Some(target_prim) = target.primitive_type() { - cleaner.prims.insert(target_prim); - } else if let Some(target_did) = target.def_id_no_primitives() { + if let Some(target_did) = target.def_id_no_primitives() { // `impl Deref for S` if target_did == type_did { // Avoid infinite cycles @@ -90,9 +86,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate { }) .expect("Deref impl without Target type"); - if let Some(prim) = target.primitive_type() { - cleaner.prims.insert(prim); - } else if let Some(did) = target.def_id(&cx.cache) { + if let Some(did) = target.def_id(&cx.cache) { cleaner.items.insert(did.into()); } if let Some(for_did) = for_.def_id_no_primitives() { @@ -208,7 +202,6 @@ impl DocFolder for ItemCollector { } struct BadImplStripper { - prims: FxHashSet, items: FxHashSet, } @@ -217,8 +210,6 @@ impl BadImplStripper { if let Generic(_) = ty { // keep impls made on generics true - } else if let Some(prim) = ty.primitive_type() { - self.prims.contains(&prim) } else if let Some(did) = ty.def_id_no_primitives() { is_deref || self.keep_impl_with_def_id(did.into()) } else {