From 16679a616187b6f14b308aba5b1dcef8887b231f Mon Sep 17 00:00:00 2001 From: zredb Date: Sat, 15 Jan 2022 17:00:59 +0800 Subject: [PATCH] fix #90187 remove the definition of def_id_no_primitives and change; a missing use was modified; narrow the Cache accessibility of BadImplStripper; --- src/librustdoc/clean/types.rs | 14 +------------- src/librustdoc/passes/collect_trait_impls.rs | 2 +- src/librustdoc/passes/stripper.rs | 2 +- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 125afb2192c4..bb8dc7827d62 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -1566,23 +1566,11 @@ impl Type { /// Use this method to get the [DefId] of a [clean] AST node, including [PrimitiveType]s. /// - /// See [`Self::def_id_no_primitives`] for more. - /// /// [clean]: crate::clean + /// crate fn def_id(&self, cache: &Cache) -> Option { self.inner_def_id(Some(cache)) } - - /// Use this method to get the [`DefId`] of a [`clean`] AST node. - /// This will return [`None`] when called on a primitive [`clean::Type`]. - /// Use [`Self::def_id`] if you want to include primitives. - /// - /// [`clean`]: crate::clean - /// [`clean::Type`]: crate::clean::Type - // FIXME: get rid of this function and always use `def_id` - crate fn def_id_no_primitives(&self) -> Option { - self.inner_def_id(None) - } } /// A primitive (aka, builtin) type. diff --git a/src/librustdoc/passes/collect_trait_impls.rs b/src/librustdoc/passes/collect_trait_impls.rs index 7c6559bf01d7..53280b3df138 100644 --- a/src/librustdoc/passes/collect_trait_impls.rs +++ b/src/librustdoc/passes/collect_trait_impls.rs @@ -208,7 +208,7 @@ impl DocVisitor for ItemCollector { struct BadImplStripper<'a> { prims: FxHashSet, items: FxHashSet, - crate cache: &'a Cache, + cache: &'a Cache, } impl<'a> BadImplStripper<'a> { diff --git a/src/librustdoc/passes/stripper.rs b/src/librustdoc/passes/stripper.rs index 4701d7f3e143..717dc078b343 100644 --- a/src/librustdoc/passes/stripper.rs +++ b/src/librustdoc/passes/stripper.rs @@ -144,7 +144,7 @@ impl<'a> DocFolder for ImplStripper<'a> { } if let Some(generics) = imp.trait_.as_ref().and_then(|t| t.generics()) { for typaram in generics { - if let Some(did) = typaram.def_id_no_primitives() { + if let Some(did) = typaram.def_id(self.cache) { if did.is_local() && !self.retained.contains(&did.into()) { debug!( "ImplStripper: stripped item in trait's generics; removing impl"