Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_db/src/helpers/import_assets.rs')
-rw-r--r--crates/ide_db/src/helpers/import_assets.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/ide_db/src/helpers/import_assets.rs b/crates/ide_db/src/helpers/import_assets.rs
index 9a8adf167c..ac0ccfa63f 100644
--- a/crates/ide_db/src/helpers/import_assets.rs
+++ b/crates/ide_db/src/helpers/import_assets.rs
@@ -454,8 +454,10 @@ fn trait_applicable_items(
let db = sema.db;
- let related_dyn_traits =
- trait_candidate.receiver_ty.applicable_inherent_traits(db).collect::<FxHashSet<_>>();
+ let inherent_traits = trait_candidate.receiver_ty.applicable_inherent_traits(db);
+ let env_traits = trait_candidate.receiver_ty.env_traits(db);
+ let related_traits = inherent_traits.chain(env_traits).collect::<FxHashSet<_>>();
+
let mut required_assoc_items = FxHashSet::default();
let trait_candidates = items_locator::items_with_name(
sema,
@@ -467,7 +469,7 @@ fn trait_applicable_items(
.filter_map(|input| item_as_assoc(db, input))
.filter_map(|assoc| {
let assoc_item_trait = assoc.containing_trait(db)?;
- if related_dyn_traits.contains(&assoc_item_trait) {
+ if related_traits.contains(&assoc_item_trait) {
None
} else {
required_assoc_items.insert(assoc);