about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Howell <michael@notriddle.com>2023-10-05 18:44:42 -0700
committerMichael Howell <michael@notriddle.com>2023-10-22 15:47:34 -0700
commitaa76a59bf024f7b721e7e0da6d39b30a3f7adbc5 (patch)
tree7f21349b17e8650295f0e4f8d9dfa0abc821fdbb
parentade7ecf90943a7b865a6281112f8b2bbda55dba2 (diff)
downloadrust-aa76a59bf024f7b721e7e0da6d39b30a3f7adbc5.tar.gz
rust-aa76a59bf024f7b721e7e0da6d39b30a3f7adbc5.zip
Revert "rustdoc: filter before storing in vec"
This reverts commit c79b960747487f6724ebe5b163a22c82a2b636d3.
-rw-r--r--src/librustdoc/html/render/context.rs14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs
index bf8d1a80337..7e432ecedc5 100644
--- a/src/librustdoc/html/render/context.rs
+++ b/src/librustdoc/html/render/context.rs
@@ -160,15 +160,8 @@ impl SharedContext<'_> {
     ) -> Vec<&'a formats::Impl> {
         let tcx = self.tcx;
         let cache = &self.cache;
-        let mut saw_impls = FxHashSet::default();
-        let mut v: Vec<&formats::Impl> = cache
-            .impls
-            .get(&did)
-            .map(Vec::as_slice)
-            .unwrap_or(&[])
-            .iter()
-            .filter(|i| saw_impls.insert(i.def_id()))
-            .collect();
+        let mut v: Vec<&formats::Impl> =
+            cache.impls.get(&did).map(Vec::as_slice).unwrap_or(&[]).iter().collect();
         if let TypeAliasItem(ait) = &*it.kind &&
             let aliased_clean_type = ait.item_type.as_ref().unwrap_or(&ait.type_) &&
             let Some(aliased_type_defid) = aliased_clean_type.def_id(cache) &&
@@ -189,12 +182,13 @@ impl SharedContext<'_> {
             v.extend(av.iter().filter(|impl_| {
                 if let Some(impl_def_id) = impl_.impl_item.item_id.as_def_id() {
                     reject_cx.types_may_unify(aliased_ty, tcx.type_of(impl_def_id).skip_binder())
-                        && saw_impls.insert(impl_def_id)
                 } else {
                     false
                 }
             }));
         }
+        let mut saw_impls = FxHashSet::default();
+        v.retain(|i| saw_impls.insert(i.def_id()));
         v
     }
 }