Skip to content

Commit bc4b0a7

Browse files
Fix macro reexports duplicates in the sidebar
1 parent 52dd59e commit bc4b0a7

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/librustdoc/html/render/context.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ impl<'tcx> Context<'tcx> {
250250
fn build_sidebar_items(&self, m: &clean::Module) -> BTreeMap<String, Vec<NameDoc>> {
251251
// BTreeMap instead of HashMap to get a sorted output
252252
let mut map: BTreeMap<_, Vec<_>> = BTreeMap::new();
253+
let mut inserted: FxHashMap<ItemType, FxHashSet<Symbol>> = FxHashMap::default();
254+
253255
for item in &m.items {
254256
if item.is_stripped() {
255257
continue;
@@ -258,13 +260,16 @@ impl<'tcx> Context<'tcx> {
258260
let short = item.type_();
259261
let myname = match item.name {
260262
None => continue,
261-
Some(ref s) => s.to_string(),
263+
Some(s) => s,
262264
};
263-
let short = short.to_string();
264-
map.entry(short).or_default().push((
265-
myname,
266-
Some(item.doc_value().map_or_else(String::new, |s| plain_text_summary(&s))),
267-
));
265+
if inserted.entry(short).or_default().insert(myname) {
266+
let short = short.to_string();
267+
let myname = myname.to_string();
268+
map.entry(short).or_default().push((
269+
myname,
270+
Some(item.doc_value().map_or_else(String::new, |s| plain_text_summary(&s))),
271+
));
272+
}
268273
}
269274

270275
if self.shared.sort_modules_alphabetically {

0 commit comments

Comments
 (0)