aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/code_model_impl.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-01-06 10:41:12 +0000
committerAleksey Kladov <[email protected]>2019-01-06 14:35:29 +0000
commit61687b9db67d34bbcce8596496448c0717d98316 (patch)
tree2b0b6ab5288e5d50230604298a86f76028cc3aa8 /crates/ra_hir/src/code_model_impl.rs
parent8c4d2770362f3c2950f110f8e116ed8f537ec1a1 (diff)
fix tests
Diffstat (limited to 'crates/ra_hir/src/code_model_impl.rs')
-rw-r--r--crates/ra_hir/src/code_model_impl.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/crates/ra_hir/src/code_model_impl.rs b/crates/ra_hir/src/code_model_impl.rs
index 659af548c..83ee8186e 100644
--- a/crates/ra_hir/src/code_model_impl.rs
+++ b/crates/ra_hir/src/code_model_impl.rs
@@ -1,4 +1,5 @@
1use ra_db::{CrateId, Cancelable}; 1use ra_db::{CrateId, Cancelable, FileId};
2use ra_syntax::{AstNode, ast};
2 3
3use crate::{HirFileId, db::HirDatabase, Crate, CrateDependency, AsName, DefId, DefLoc, DefKind, Name}; 4use crate::{HirFileId, db::HirDatabase, Crate, CrateDependency, AsName, DefId, DefLoc, DefKind, Name};
4 5
@@ -48,6 +49,22 @@ impl Module {
48 crate::code_model_api::Module { def_id } 49 crate::code_model_api::Module { def_id }
49 } 50 }
50 51
52 pub(crate) fn source_impl(&self, db: &impl HirDatabase) -> (FileId, Option<ast::ModuleNode>) {
53 let loc = self.def_id.loc(db);
54 let source_item_id = loc.source_item_id;
55 let module = match source_item_id.item_id {
56 None => None,
57 Some(_) => {
58 let syntax_node = db.file_item(source_item_id);
59 let module = ast::Module::cast(syntax_node.borrowed()).unwrap().owned();
60 Some(module)
61 }
62 };
63 // FIXME: remove `as_original_file` here
64 let file_id = source_item_id.file_id.as_original_file();
65 (file_id, module)
66 }
67
51 pub(crate) fn krate_impl(&self, db: &impl HirDatabase) -> Cancelable<Option<Crate>> { 68 pub(crate) fn krate_impl(&self, db: &impl HirDatabase) -> Cancelable<Option<Crate>> {
52 let root = self.crate_root(db)?; 69 let root = self.crate_root(db)?;
53 let loc = root.def_id.loc(db); 70 let loc = root.def_id.loc(db);