Attach the DB when mapping the result of `world_symbols()`
We call `try_to_nav()` there.
diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs
index 874e047..4b93535 100644
--- a/crates/ide/src/lib.rs
+++ b/crates/ide/src/lib.rs
@@ -481,12 +481,15 @@
// `world_symbols` currently clones the database to run stuff in parallel, which will make any query panic
// if we were to attach it here.
Cancelled::catch(|| {
- symbol_index::world_symbols(&self.db, query)
- .into_iter()
- .filter_map(|s| s.try_to_nav(&self.db))
- .take(limit)
- .map(UpmappingResult::call_site)
- .collect::<Vec<_>>()
+ let symbols = symbol_index::world_symbols(&self.db, query);
+ salsa::attach(&self.db, || {
+ symbols
+ .into_iter()
+ .filter_map(|s| s.try_to_nav(&self.db))
+ .take(limit)
+ .map(UpmappingResult::call_site)
+ .collect::<Vec<_>>()
+ })
})
}