about summary refs log tree commit diff
path: root/src/librustdoc
diff options
context:
space:
mode:
authorMichael Howell <michael@notriddle.com>2022-09-09 12:58:42 -0700
committerMichael Howell <michael@notriddle.com>2022-09-09 13:05:08 -0700
commit1f8d552d6dfd4bb534c98b79150f21a122ed0b4c (patch)
tree643a84b250004f98a69dfda9155fe9505ae0fe49 /src/librustdoc
parent98f3001eecbe4cbd091c10ffab45b4c164bb507b (diff)
rustdoc: avoid cleaning modules with duplicate names
Diffstat (limited to 'src/librustdoc')
-rw-r--r--src/librustdoc/clean/mod.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs
index 08b696e65eb..ecbfc636314 100644
--- a/src/librustdoc/clean/mod.rs
+++ b/src/librustdoc/clean/mod.rs
@@ -55,9 +55,11 @@ pub(crate) fn clean_doc_module<'tcx>(doc: &DocModule<'tcx>, cx: &mut DocContext<
         }
         item
     }));
-    items.extend(doc.mods.iter().map(|x| {
-        inserted.insert((ItemType::Module, x.name));
-        clean_doc_module(x, cx)
+    items.extend(doc.mods.iter().filter_map(|x| {
+        if !inserted.insert((ItemType::Module, x.name)) {
+            return None;
+        }
+        Some(clean_doc_module(x, cx))
     }));
 
     // Split up imports from all other items.