1
Fork 0

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, None,
false, false,
true, true,
true,
&[], &[],
true,
); );
buffer.into_inner() buffer.into_inner()
}) })
@ -1053,7 +1055,9 @@ fn render_assoc_items(
None, None,
false, false,
true, true,
true,
&[], &[],
true,
); );
} }
} }
@ -1254,9 +1258,12 @@ fn render_impl(
use_absolute: Option<bool>, use_absolute: Option<bool>,
is_on_foreign_type: bool, is_on_foreign_type: bool,
show_default_items: 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 // 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". // in documentation pages for trait with automatic implementations like "Send" and "Sync".
aliases: &[String], aliases: &[String],
toggle_open_by_default: bool,
) { ) {
let cache = cx.cache(); let cache = cx.cache();
let traits = &cache.traits; let traits = &cache.traits;
@ -1280,11 +1287,13 @@ fn render_impl(
is_default_item: bool, is_default_item: bool,
trait_: Option<&clean::Trait>, trait_: Option<&clean::Trait>,
show_def_docs: bool, show_def_docs: bool,
show_non_assoc_items: bool,
) { ) {
let item_type = item.type_(); let item_type = item.type_();
let name = item.name.as_ref().unwrap(); let name = item.name.as_ref().unwrap();
let render_method_item = match render_mode { let render_method_item = show_non_assoc_items
&& match render_mode {
RenderMode::Normal => true, RenderMode::Normal => true,
RenderMode::ForDeref { mut_: deref_mut_ } => { RenderMode::ForDeref { mut_: deref_mut_ } => {
should_render_item(&item, deref_mut_, cx.cache()) should_render_item(&item, deref_mut_, cx.cache())
@ -1456,6 +1465,7 @@ fn render_impl(
false, false,
trait_.map(|t| &t.trait_), trait_.map(|t| &t.trait_),
show_def_docs, show_def_docs,
show_non_assoc_items,
); );
} }
@ -1469,6 +1479,7 @@ fn render_impl(
containing_item: &clean::Item, containing_item: &clean::Item,
render_mode: RenderMode, render_mode: RenderMode,
show_def_docs: bool, show_def_docs: bool,
show_non_assoc_items: bool,
) { ) {
for trait_item in &t.items { for trait_item in &t.items {
let n = trait_item.name; let n = trait_item.name;
@ -1491,6 +1502,7 @@ fn render_impl(
true, true,
Some(t), Some(t),
show_def_docs, show_def_docs,
show_non_assoc_items,
); );
} }
} }
@ -1511,6 +1523,7 @@ fn render_impl(
parent, parent,
render_mode, render_mode,
show_def_docs, 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()); let toggled = !(impl_items.is_empty() && default_impl_items.is_empty());
if toggled { if toggled {
close_tags.insert_str(0, "</details>"); 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>") write!(w, "<summary>")
} }
render_impl_summary( render_impl_summary(

View file

@ -16,8 +16,7 @@ use rustc_span::symbol::{kw, sym, Symbol};
use super::{ use super::{
collect_paths_for_type, document, ensure_trailing_slash, item_ty_to_strs, notable_traits_decl, 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_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, render_impl, render_stability_since_raw, write_srclink, AssocItemLink, Context,
Context,
}; };
use crate::clean::{self, GetDefId}; use crate::clean::{self, GetDefId};
use crate::formats::item_type::ItemType; 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, None,
true, true,
false, false,
true,
&[], &[],
false,
); );
} }
} }
@ -1388,16 +1389,20 @@ fn render_implementor(
} => implementor_dups[&path.last()].1, } => implementor_dups[&path.last()].1,
_ => false, _ => false,
}; };
render_impl_summary( render_impl(
w, w,
cx, cx,
implementor, implementor,
trait_, trait_,
trait_, AssocItemLink::Anchor(None),
RenderMode::Normal,
false, false,
Some(use_absolute), Some(use_absolute),
false, false,
false,
false,
aliases, aliases,
false,
); );
} }