Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/chalk_db.rs')
-rw-r--r--crates/hir-ty/src/chalk_db.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/hir-ty/src/chalk_db.rs b/crates/hir-ty/src/chalk_db.rs
index f4fbace19e..e81d4ced55 100644
--- a/crates/hir-ty/src/chalk_db.rs
+++ b/crates/hir-ty/src/chalk_db.rs
@@ -167,7 +167,7 @@ impl chalk_solve::RustIrDatabase<Interner> for ChalkContext<'_> {
}
});
})
- .map(|block_id| self.db.trait_impls_in_block(block_id));
+ .filter_map(|block_id| self.db.trait_impls_in_block(block_id));
let id_to_chalk = |id: hir_def::ImplId| id.to_chalk(self.db);
let mut result = vec![];
@@ -183,7 +183,8 @@ impl chalk_solve::RustIrDatabase<Interner> for ChalkContext<'_> {
def_blocks
.into_iter()
.flatten()
- .for_each(|it| f(&self.db.trait_impls_in_block(it)));
+ .filter_map(|it| self.db.trait_impls_in_block(it))
+ .for_each(|it| f(&it));
}
fps => {
let mut f =
@@ -198,7 +199,8 @@ impl chalk_solve::RustIrDatabase<Interner> for ChalkContext<'_> {
def_blocks
.into_iter()
.flatten()
- .for_each(|it| f(&self.db.trait_impls_in_block(it)));
+ .filter_map(|it| self.db.trait_impls_in_block(it))
+ .for_each(|it| f(&it));
}
}