diff options
| author | Michael Howell <michael@notriddle.com> | 2022-08-02 14:48:23 -0700 |
|---|---|---|
| committer | Michael Howell <michael@notriddle.com> | 2022-08-02 14:48:23 -0700 |
| commit | 8724ca3114f2babefeee7989eadbb7d156503f37 (patch) | |
| tree | bad1752496b993df9336731667bd9b31b18ecaa0 /src/librustdoc | |
| parent | 225ac9efc10bfd4149fd6de3d09e70d6c2387a8b (diff) | |
rustdoc: avoid inlining foreigns with duplicate names
Diffstat (limited to 'src/librustdoc')
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index cf03979a934..9251a7487a7 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -52,11 +52,13 @@ impl<'tcx> Clean<'tcx, Item> for DocModule<'tcx> { fn clean(&self, cx: &mut DocContext<'tcx>) -> Item { let mut items: Vec<Item> = vec![]; let mut inserted = FxHashSet::default(); - items.extend( - self.foreigns - .iter() - .map(|(item, renamed)| clean_maybe_renamed_foreign_item(cx, item, *renamed)), - ); + items.extend(self.foreigns.iter().map(|(item, renamed)| { + let item = clean_maybe_renamed_foreign_item(cx, item, *renamed); + if let Some(name) = item.name { + inserted.insert((item.type_(), name)); + } + item + })); items.extend(self.mods.iter().map(|x| { inserted.insert((ItemType::Module, x.name)); x.clean(cx) |
