diff options
author | Aleksey Kladov <[email protected]> | 2019-01-06 10:41:12 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-01-06 14:35:29 +0000 |
commit | 61687b9db67d34bbcce8596496448c0717d98316 (patch) | |
tree | 2b0b6ab5288e5d50230604298a86f76028cc3aa8 /crates/ra_hir/src/code_model_impl.rs | |
parent | 8c4d2770362f3c2950f110f8e116ed8f537ec1a1 (diff) |
fix tests
Diffstat (limited to 'crates/ra_hir/src/code_model_impl.rs')
-rw-r--r-- | crates/ra_hir/src/code_model_impl.rs | 19 |
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 @@ | |||
1 | use ra_db::{CrateId, Cancelable}; | 1 | use ra_db::{CrateId, Cancelable, FileId}; |
2 | use ra_syntax::{AstNode, ast}; | ||
2 | 3 | ||
3 | use crate::{HirFileId, db::HirDatabase, Crate, CrateDependency, AsName, DefId, DefLoc, DefKind, Name}; | 4 | use 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); |