Put back display of associated items (types and consts)

This commit is contained in:
Guillaume Gomez 2021-08-30 16:04:28 +02:00
parent 4a6547cca6
commit 8553c199e7
2 changed files with 33 additions and 11 deletions

View File

@ -714,7 +714,9 @@ fn render_impls(
None,
false,
true,
true,
&[],
true,
);
buffer.into_inner()
})
@ -1053,7 +1055,9 @@ fn render_assoc_items(
None,
false,
true,
true,
&[],
true,
);
}
}
@ -1254,9 +1258,12 @@ fn render_impl(
use_absolute: Option<bool>,
is_on_foreign_type: bool,
show_default_items: bool,
// It'll exclude methods.
show_non_assoc_items: bool,
// This argument is used to reference same type with different paths to avoid duplication
// in documentation pages for trait with automatic implementations like "Send" and "Sync".
aliases: &[String],
toggle_open_by_default: bool,
) {
let cache = cx.cache();
let traits = &cache.traits;
@ -1280,16 +1287,18 @@ fn render_impl(
is_default_item: bool,
trait_: Option<&clean::Trait>,
show_def_docs: bool,
show_non_assoc_items: bool,
) {
let item_type = item.type_();
let name = item.name.as_ref().unwrap();
let render_method_item = match render_mode {
RenderMode::Normal => true,
RenderMode::ForDeref { mut_: deref_mut_ } => {
should_render_item(&item, deref_mut_, cx.cache())
}
};
let render_method_item = show_non_assoc_items
&& match render_mode {
RenderMode::Normal => true,
RenderMode::ForDeref { mut_: deref_mut_ } => {
should_render_item(&item, deref_mut_, cx.cache())
}
};
let in_trait_class = if trait_.is_some() { " trait-impl" } else { "" };
@ -1456,6 +1465,7 @@ fn render_impl(
false,
trait_.map(|t| &t.trait_),
show_def_docs,
show_non_assoc_items,
);
}
@ -1469,6 +1479,7 @@ fn render_impl(
containing_item: &clean::Item,
render_mode: RenderMode,
show_def_docs: bool,
show_non_assoc_items: bool,
) {
for trait_item in &t.items {
let n = trait_item.name;
@ -1491,6 +1502,7 @@ fn render_impl(
true,
Some(t),
show_def_docs,
show_non_assoc_items,
);
}
}
@ -1511,6 +1523,7 @@ fn render_impl(
parent,
render_mode,
show_def_docs,
show_non_assoc_items,
);
}
}
@ -1518,7 +1531,11 @@ fn render_impl(
let toggled = !(impl_items.is_empty() && default_impl_items.is_empty());
if toggled {
close_tags.insert_str(0, "</details>");
write!(w, "<details class=\"rustdoc-toggle implementors-toggle\" open>");
write!(
w,
"<details class=\"rustdoc-toggle implementors-toggle\"{}>",
if toggle_open_by_default { " open" } else { "" }
);
write!(w, "<summary>")
}
render_impl_summary(

View File

@ -16,8 +16,7 @@ use rustc_span::symbol::{kw, sym, Symbol};
use super::{
collect_paths_for_type, document, ensure_trailing_slash, item_ty_to_strs, notable_traits_decl,
render_assoc_item, render_assoc_items, render_attributes_in_code, render_attributes_in_pre,
render_impl, render_impl_summary, render_stability_since_raw, write_srclink, AssocItemLink,
Context,
render_impl, render_stability_since_raw, write_srclink, AssocItemLink, Context,
};
use crate::clean::{self, GetDefId};
use crate::formats::item_type::ItemType;
@ -740,7 +739,9 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra
None,
true,
false,
true,
&[],
false,
);
}
}
@ -1388,16 +1389,20 @@ fn render_implementor(
} => implementor_dups[&path.last()].1,
_ => false,
};
render_impl_summary(
render_impl(
w,
cx,
implementor,
trait_,
trait_,
AssocItemLink::Anchor(None),
RenderMode::Normal,
false,
Some(use_absolute),
false,
false,
false,
aliases,
false,
);
}