Skip to content

Commit 2d37b00

Browse files
Handle private dep at the same level as masked crates
1 parent efac0b9 commit 2d37b00

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

src/librustdoc/formats/cache.rs

+10-15
Original file line numberDiff line numberDiff line change
@@ -221,16 +221,23 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> {
221221
_ => self.cache.stripped_mod,
222222
};
223223

224+
#[inline]
225+
fn is_from_private_dep(tcx: TyCtxt<'_>, cache: &Cache, def_id: DefId) -> bool {
226+
let krate = def_id.krate;
227+
228+
cache.masked_crates.contains(&krate) || tcx.is_private_dep(krate)
229+
}
230+
224231
// If the impl is from a masked crate or references something from a
225232
// masked crate then remove it completely.
226233
if let clean::ImplItem(ref i) = *item.kind &&
227234
(self.cache.masked_crates.contains(&item.item_id.krate())
228235
|| i.trait_
229236
.as_ref()
230-
.map_or(false, |t| self.cache.masked_crates.contains(&t.def_id().krate))
237+
.map_or(false, |t| is_from_private_dep(self.tcx, self.cache, t.def_id()))
231238
|| i.for_
232239
.def_id(self.cache)
233-
.map_or(false, |d| self.cache.masked_crates.contains(&d.krate)))
240+
.map_or(false, |d| is_from_private_dep(self.tcx, self.cache, d)))
234241
{
235242
return None;
236243
}
@@ -310,19 +317,7 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> {
310317
for_: clean::Type::BorrowedRef { type_, .. },
311318
..
312319
} => type_.def_id(&self.cache),
313-
ParentStackItem::Impl { for_, trait_, .. } => {
314-
if let Some(trait_) = trait_ {
315-
let trait_did = trait_.def_id();
316-
// If this is a foreign trait impl but the trait documentation
317-
// is not available, we should not allow the methods to show up
318-
// in the search results.
319-
if !trait_did.is_local() && self.tcx.is_private_dep(trait_did.krate)
320-
{
321-
return None;
322-
}
323-
}
324-
for_.def_id(&self.cache)
325-
}
320+
ParentStackItem::Impl { for_, .. } => for_.def_id(&self.cache),
326321
ParentStackItem::Type(item_id) => item_id.as_def_id(),
327322
};
328323
let path = did

0 commit comments

Comments
 (0)