Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/term_search.rs')
-rw-r--r--crates/hir/src/term_search.rs20
1 files changed, 17 insertions, 3 deletions
diff --git a/crates/hir/src/term_search.rs b/crates/hir/src/term_search.rs
index 93e7300491..ea13b0c8a8 100644
--- a/crates/hir/src/term_search.rs
+++ b/crates/hir/src/term_search.rs
@@ -127,6 +127,13 @@ impl LookupTable {
self.types_wishlist.insert(ty.clone());
}
+ // Collapse suggestions if there are many
+ if let Some(res) = &res {
+ if res.len() > self.many_threshold {
+ return Some(vec![Expr::Many(ty.clone())]);
+ }
+ }
+
res
}
@@ -158,6 +165,13 @@ impl LookupTable {
self.types_wishlist.insert(ty.clone());
}
+ // Collapse suggestions if there are many
+ if let Some(res) = &res {
+ if res.len() > self.many_threshold {
+ return Some(vec![Expr::Many(ty.clone())]);
+ }
+ }
+
res
}
@@ -176,11 +190,11 @@ impl LookupTable {
}
None => {
self.data.insert(ty.clone(), AlternativeExprs::new(self.many_threshold, exprs));
- for it in self.new_types.values_mut() {
- it.push(ty.clone());
- }
}
}
+ for it in self.new_types.values_mut() {
+ it.push(ty.clone());
+ }
}
/// Iterate all the reachable types