From 52a3d38796c616bbed39cda2dc3538f2cedbd5ac Mon Sep 17 00:00:00 2001 From: Kevin Ballard Date: Tue, 11 Feb 2014 14:29:23 -0800 Subject: [PATCH] rustdoc: Strip impls of stripped private types In strip-private, also strip impls of traits for private types. This fixes the search index so searching for "drop", "eq", etc doesn't throw an exception. --- src/librustdoc/passes.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/librustdoc/passes.rs b/src/librustdoc/passes.rs index 30643737078e..fce4cab52c93 100644 --- a/src/librustdoc/passes.rs +++ b/src/librustdoc/passes.rs @@ -110,8 +110,16 @@ impl<'a> fold::DocFolder for Stripper<'a> { // handled below clean::ModuleItem(..) => {} - // impls/tymethods have no control over privacy - clean::ImplItem(..) | clean::TyMethodItem(..) => {} + // trait impls for private items should be stripped + clean::ImplItem(clean::Impl{ for_: clean::ResolvedPath{ id: ref for_id, .. }, .. }) => { + if !self.exported_items.contains(for_id) { + return None; + } + } + clean::ImplItem(..) => {} + + // tymethods have no control over privacy + clean::TyMethodItem(..) => {} } let fastreturn = match i.inner {