Fix multiple errors

This commit is contained in:
Guillaume Gomez 2018-10-22 00:43:23 +02:00
parent f729f4a75e
commit b2f80ddf34
5 changed files with 30 additions and 10 deletions

View File

@ -552,6 +552,15 @@ pub fn generics(&self) -> Option<&Generics> {
_ => return None,
})
}
pub fn is_associated(&self) -> bool {
match *self {
ItemEnum::TypedefItem(_, _) |
ItemEnum::AssociatedConstItem(_, _) |
ItemEnum::AssociatedTypeItem(_, _) => true,
_ => false,
}
}
}
#[derive(Clone, RustcEncodable, RustcDecodable, Debug)]

View File

@ -3881,19 +3881,21 @@ fn doc_impl_item(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item,
RenderMode::ForDeref { mut_: deref_mut_ } => should_render_item(&item, deref_mut_),
};
let (mut is_hidden, extra_class) = if item.doc_value().is_some() {
let (is_hidden, extra_class) = if trait_.is_none() ||
item.doc_value().is_some() ||
item.inner.is_associated() {
(false, "")
} else {
(true, " hidden")
};
match item.inner {
clean::MethodItem(clean::Method { ref decl, .. }) |
clean::TyMethodItem(clean::TyMethod{ ref decl, .. }) => {
clean::TyMethodItem(clean::TyMethod { ref decl, .. }) => {
// Only render when the method is not static or we allow static methods
if render_method_item {
let id = cx.derive_id(format!("{}.{}", item_type, name));
let ns_id = cx.derive_id(format!("{}.{}", name, item_type.name_space()));
write!(w, "<h4 id='{}' class=\"{}\">", id, item_type)?;
write!(w, "<h4 id='{}' class=\"{}{}\">", id, item_type, extra_class)?;
write!(w, "{}", spotlight_decl(decl)?)?;
write!(w, "<span id='{}' class='invisible'>", ns_id)?;
write!(w, "<table class='table-display'><tbody><tr><td><code>")?;
@ -3910,7 +3912,6 @@ fn doc_impl_item(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item,
render_stability_since_raw(w, item.stable_since(), outer_version)?;
}
write!(w, "</td></tr></tbody></table></span></h4>")?;
is_hidden = false;
}
}
clean::TypedefItem(ref tydef, _) => {

View File

@ -2059,12 +2059,22 @@
onEach(document.getElementsByClassName('impl'), func);
onEach(document.getElementsByClassName('impl-items'), function(e) {
onEach(e.getElementsByClassName('associatedconstant'), func);
if (e.getElementsByClassName('hidden').length > 0) {
var hiddenElems = e.getElementsByClassName('hidden');
var needToggle = false;
for (var i = 0; i < hiddenElems.length; ++i) {
if (hasClass(hiddenElems[i], "content") === false &&
hasClass(hiddenElems[i], "docblock") === false) {
needToggle = true;
break;
}
}
if (needToggle === true) {
var newToggle = document.createElement('a');
newToggle.href = 'javascript:void(0)';
newToggle.className = 'collapse-toggle hidden-default collapsed';
newToggle.innerHTML = "[<span class='inner'>" + labelForToggleButton(true) + "</span>" +
"] Show hidden default items";
"] Show hidden undocumented items";
newToggle.onclick = function() {
if (hasClass(this, "collapsed")) {
removeClass(this, "collapsed");
@ -2075,7 +2085,7 @@
}
}, true);
this.innerHTML = "[<span class='inner'>" + labelForToggleButton(false) +
"</span>] Hide default items"
"</span>] Hide undocumented items"
} else {
addClass(this, "collapsed");
onEach(this.parentNode.getElementsByClassName("x"), function(x) {
@ -2085,7 +2095,7 @@
}
}, true);
this.innerHTML = "[<span class='inner'>" + labelForToggleButton(true) +
"</span>] Show hidden default items";
"</span>] Show hidden undocumented items";
}
};
e.insertBefore(newToggle, e.firstChild);

View File

@ -99,7 +99,7 @@ impl Qux for Bar {
/// Docs for QUX1 in impl.
const QUX1: i8 = 5;
// @has - '//*[@id="associatedconstant.QUX_DEFAULT0"]' 'const QUX_DEFAULT0: u16'
// @has - '//*[@class="docblock hidden"]' "Docs for QUX_DEFAULT12 in trait."
// @has - '//*[@class="docblock"]' "Docs for QUX_DEFAULT12 in trait."
const QUX_DEFAULT0: u16 = 6;
// @has - '//*[@id="associatedconstant.QUX_DEFAULT1"]' 'const QUX_DEFAULT1: i16'
// @has - '//*[@class="docblock"]' "Docs for QUX_DEFAULT1 in impl."

View File

@ -74,7 +74,7 @@ fn c_method(&self) -> usize {
// @has manual_impl/struct.S3.html '//*[@class="trait"]' 'T'
// @has - '//*[@class="docblock"]' 'Docs associated with the S3 trait implementation.'
// @has - '//*[@class="docblock"]' 'Docs associated with the S3 trait b_method implementation.'
// @has - '//*[@class="docblock"]' 'Docs associated with the trait a_method definition.'
// @has - '//*[@class="docblock hidden"]' 'Docs associated with the trait a_method definition.'
pub struct S3(usize);
/// Docs associated with the S3 trait implementation.