aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/utils.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-11-26 14:42:21 +0000
committerAleksey Kladov <[email protected]>2019-11-26 14:45:06 +0000
commit24b1e79af51f5af76047a5eee2fe90baf100afca (patch)
tree4d6767c90e5ac4ec5d6f6149e434ebf09dfa82be /crates/ra_hir/src/ty/utils.rs
parent25b32f9d68e9f01f2b92801f4b35daf2b8b250f7 (diff)
Remove another helper
Diffstat (limited to 'crates/ra_hir/src/ty/utils.rs')
-rw-r--r--crates/ra_hir/src/ty/utils.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/crates/ra_hir/src/ty/utils.rs b/crates/ra_hir/src/ty/utils.rs
index 672804787..52994b9e3 100644
--- a/crates/ra_hir/src/ty/utils.rs
+++ b/crates/ra_hir/src/ty/utils.rs
@@ -5,9 +5,9 @@ use hir_def::{
5 db::DefDatabase, 5 db::DefDatabase,
6 resolver::{HasResolver, TypeNs}, 6 resolver::{HasResolver, TypeNs},
7 type_ref::TypeRef, 7 type_ref::TypeRef,
8 TraitId, 8 TraitId, TypeAliasId,
9}; 9};
10use hir_expand::name; 10use hir_expand::name::{self, Name};
11 11
12// FIXME: this is wrong, b/c it can't express `trait T: PartialEq<()>`. 12// FIXME: this is wrong, b/c it can't express `trait T: PartialEq<()>`.
13// We should return a `TraitREf` here. 13// We should return a `TraitREf` here.
@@ -51,3 +51,13 @@ pub(crate) fn all_super_traits(db: &impl DefDatabase, trait_: TraitId) -> Vec<Tr
51 } 51 }
52 result 52 result
53} 53}
54
55pub(crate) fn associated_type_by_name_including_super_traits(
56 db: &impl DefDatabase,
57 trait_: TraitId,
58 name: &Name,
59) -> Option<TypeAliasId> {
60 all_super_traits(db, trait_)
61 .into_iter()
62 .find_map(|t| db.trait_data(t).associated_type_by_name(name))
63}