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.rs | 8 |
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); |