aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/parent_module.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/parent_module.rs')
-rw-r--r--crates/ra_ide_api/src/parent_module.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/crates/ra_ide_api/src/parent_module.rs b/crates/ra_ide_api/src/parent_module.rs
index e94297fe3..603c3db6a 100644
--- a/crates/ra_ide_api/src/parent_module.rs
+++ b/crates/ra_ide_api/src/parent_module.rs
@@ -1,4 +1,4 @@
1use ra_db::FilePosition; 1use ra_db::{FilePosition, FileId, CrateId};
2 2
3use crate::{NavigationTarget, db::RootDatabase}; 3use crate::{NavigationTarget, db::RootDatabase};
4 4
@@ -13,6 +13,19 @@ pub(crate) fn parent_module(db: &RootDatabase, position: FilePosition) -> Vec<Na
13 vec![nav] 13 vec![nav]
14} 14}
15 15
16/// Returns `Vec` for the same reason as `parent_module`
17pub(crate) fn crate_for(db: &RootDatabase, file_id: FileId) -> Vec<CrateId> {
18 let module = match hir::source_binder::module_from_file_id(db, file_id) {
19 Some(it) => it,
20 None => return Vec::new(),
21 };
22 let krate = match module.krate(db) {
23 Some(it) => it,
24 None => return Vec::new(),
25 };
26 vec![krate.crate_id()]
27}
28
16#[cfg(test)] 29#[cfg(test)]
17mod tests { 30mod tests {
18 use crate::mock_analysis::analysis_and_position; 31 use crate::mock_analysis::analysis_and_position;