diff options
| author | Tom Jakubowski <tom@crystae.net> | 2014-10-07 08:36:55 -0700 |
|---|---|---|
| committer | Tom Jakubowski <tom@crystae.net> | 2014-10-21 08:49:43 -0700 |
| commit | 370c9c54c2e9b9a308b4fa2a48460e0d54794729 (patch) | |
| tree | e5310cad7afeeb580889167a3ed0df56a20e578f | |
| parent | b69cd73b7bd448dbfde4cf074b73a4b8384cad38 (diff) | |
rustdoc: hide private traits in strip-private pass
Fix #16563
| -rw-r--r-- | src/librustdoc/passes.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/librustdoc/passes.rs b/src/librustdoc/passes.rs index 1a9dd226f87..7c4d28d5adb 100644 --- a/src/librustdoc/passes.rs +++ b/src/librustdoc/passes.rs @@ -134,7 +134,18 @@ impl<'a> fold::DocFolder for Stripper<'a> { clean::StructItem(..) | clean::EnumItem(..) | clean::TraitItem(..) | clean::FunctionItem(..) | clean::VariantItem(..) | clean::MethodItem(..) | - clean::ForeignFunctionItem(..) | clean::ForeignStaticItem(..) | + clean::ForeignFunctionItem(..) | clean::ForeignStaticItem(..) => { + if ast_util::is_local(i.def_id) { + if !self.exported_items.contains(&i.def_id.node) { + return None; + } + // Traits are in exported_items even when they're totally private. + if i.is_trait() && i.visibility != Some(ast::Public) { + return None; + } + } + } + clean::ConstantItem(..) => { if ast_util::is_local(i.def_id) && !self.exported_items.contains(&i.def_id.node) { |
