Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/lib.rs')
-rw-r--r--crates/hir/src/lib.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index 82c6cf7442..b2fa4b6b20 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -250,6 +250,14 @@ impl Crate {
db.transitive_rev_deps(self.id).into_iter().map(|id| Crate { id })
}
+ pub fn notable_traits_in_deps(self, db: &dyn HirDatabase) -> impl Iterator<Item = &TraitId> {
+ self.id
+ .transitive_deps(db)
+ .into_iter()
+ .filter_map(|&krate| db.crate_notable_traits(krate))
+ .flatten()
+ }
+
pub fn root_module(self) -> Module {
Module { id: CrateRootModuleId::from(self.id).into() }
}