diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-02-20 00:37:24 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-20 00:37:24 +0100 |
| commit | 1ae00e0b935f7f3fa353bb4a6443aebc70172c98 (patch) | |
| tree | 38f891e34d4be80d1179e28979c9d5ed099ec08e /src/librustdoc/html/render | |
| parent | 575f6c5cc1779508cd30847ccb9f3f489f5e6c00 (diff) | |
| parent | d9ea7bc98d760b1bfabf192bbadf7e73df0ade68 (diff) | |
| download | rust-1ae00e0b935f7f3fa353bb4a6443aebc70172c98.tar.gz rust-1ae00e0b935f7f3fa353bb4a6443aebc70172c98.zip | |
Rollup merge of #94002 - GuillaumeGomez:duplicated-sidebar-macro, r=notriddle
rustdoc: Avoid duplicating macros in sidebar Fixes #93912. cc ``````@jsha`````` (for the GUI test) r? ``````@camelid``````
Diffstat (limited to 'src/librustdoc/html/render')
| -rw-r--r-- | src/librustdoc/html/render/context.rs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs index 2455d56bd2b..a7f852a432c 100644 --- a/src/librustdoc/html/render/context.rs +++ b/src/librustdoc/html/render/context.rs @@ -250,6 +250,8 @@ impl<'tcx> Context<'tcx> { fn build_sidebar_items(&self, m: &clean::Module) -> BTreeMap<String, Vec<NameDoc>> { // BTreeMap instead of HashMap to get a sorted output let mut map: BTreeMap<_, Vec<_>> = BTreeMap::new(); + let mut inserted: FxHashMap<ItemType, FxHashSet<Symbol>> = FxHashMap::default(); + for item in &m.items { if item.is_stripped() { continue; @@ -258,13 +260,16 @@ impl<'tcx> Context<'tcx> { let short = item.type_(); let myname = match item.name { None => continue, - Some(ref s) => s.to_string(), + Some(s) => s, }; - let short = short.to_string(); - map.entry(short).or_default().push(( - myname, - Some(item.doc_value().map_or_else(String::new, |s| plain_text_summary(&s))), - )); + if inserted.entry(short).or_default().insert(myname) { + let short = short.to_string(); + let myname = myname.to_string(); + map.entry(short).or_default().push(( + myname, + Some(item.doc_value().map_or_else(String::new, |s| plain_text_summary(&s))), + )); + } } if self.shared.sort_modules_alphabetically { |
