Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/lib.rs')
| -rw-r--r-- | crates/ide/src/lib.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs index 09a5cb03ec..416817ca0b 100644 --- a/crates/ide/src/lib.rs +++ b/crates/ide/src/lib.rs @@ -486,6 +486,16 @@ impl Analysis { self.with_db(|db| parent_module::crates_for(db, file_id)) } + /// Returns crates this file belongs too. + pub fn transitive_rev_deps(&self, crate_id: CrateId) -> Cancellable<Vec<CrateId>> { + self.with_db(|db| db.crate_graph().transitive_rev_deps(crate_id).collect()) + } + + /// Returns crates this file *might* belong too. + pub fn relevant_crates_for(&self, file_id: FileId) -> Cancellable<Vec<CrateId>> { + self.with_db(|db| db.relevant_crates(file_id).iter().copied().collect()) + } + /// Returns the edition of the given crate. pub fn crate_edition(&self, crate_id: CrateId) -> Cancellable<Edition> { self.with_db(|db| db.crate_graph()[crate_id].edition) |