auto merge of #13827 : lifthrasiir/rust/rustdoc-hidden-pub-field, r=alexcrichton
Fixes #13806. Also adds a note to `HiddenStructField` about why it doesn't appear in the `clean` module itself.
This commit is contained in:
commit
3cd6c1e008
@ -152,6 +152,21 @@ impl Item {
|
|||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn is_hidden_from_doc(&self) -> bool {
|
||||||
|
match self.doc_list() {
|
||||||
|
Some(ref l) => {
|
||||||
|
for innerattr in l.iter() {
|
||||||
|
match *innerattr {
|
||||||
|
Word(ref s) if "hidden" == *s => return true,
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
None => ()
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
pub fn is_mod(&self) -> bool {
|
pub fn is_mod(&self) -> bool {
|
||||||
match self.inner { ModuleItem(..) => true, _ => false }
|
match self.inner { ModuleItem(..) => true, _ => false }
|
||||||
}
|
}
|
||||||
@ -736,7 +751,7 @@ impl Clean<Type> for ast::Ty {
|
|||||||
|
|
||||||
#[deriving(Clone, Encodable, Decodable)]
|
#[deriving(Clone, Encodable, Decodable)]
|
||||||
pub enum StructField {
|
pub enum StructField {
|
||||||
HiddenStructField,
|
HiddenStructField, // inserted later by strip passes
|
||||||
TypedStructField(Type),
|
TypedStructField(Type),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,23 +33,24 @@ pub fn strip_hidden(krate: clean::Crate) -> plugins::PluginResult {
|
|||||||
};
|
};
|
||||||
impl<'a> fold::DocFolder for Stripper<'a> {
|
impl<'a> fold::DocFolder for Stripper<'a> {
|
||||||
fn fold_item(&mut self, i: Item) -> Option<Item> {
|
fn fold_item(&mut self, i: Item) -> Option<Item> {
|
||||||
for attr in i.attrs.iter() {
|
if i.is_hidden_from_doc() {
|
||||||
match attr {
|
|
||||||
&clean::List(ref x, ref l) if "doc" == *x => {
|
|
||||||
for innerattr in l.iter() {
|
|
||||||
match innerattr {
|
|
||||||
&clean::Word(ref s) if "hidden" == *s => {
|
|
||||||
debug!("found one in strip_hidden; removing");
|
debug!("found one in strip_hidden; removing");
|
||||||
self.stripped.insert(i.id);
|
self.stripped.insert(i.id);
|
||||||
|
|
||||||
|
// use a dedicated hidden item for given item type if any
|
||||||
|
match i.inner {
|
||||||
|
clean::StructFieldItem(..) => {
|
||||||
|
return Some(clean::Item {
|
||||||
|
inner: clean::StructFieldItem(clean::HiddenStructField),
|
||||||
|
..i
|
||||||
|
});
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
return None;
|
return None;
|
||||||
},
|
|
||||||
_ => (),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
_ => ()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.fold_item_recur(i)
|
self.fold_item_recur(i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user