aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/code_model_impl/module.rs
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-01-30 19:19:31 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-01-30 19:19:31 +0000
commitb704ce803b99f0c69bbcd3d4ab531d2604de8594 (patch)
tree4b347869363f7d7fef0f16ab5f56c7be9c94952a /crates/ra_hir/src/code_model_impl/module.rs
parent897e74f089ee4c13aeca6f0244c7809c1b631a34 (diff)
parent04eb15856bd183db3a1785b7cb74e0c32fd78a39 (diff)
Merge #702
702: Go to Implementation r=matklad a=kjeremy First half of #620 Co-authored-by: Jeremy Kolb <[email protected]> Co-authored-by: kjeremy <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/code_model_impl/module.rs')
-rw-r--r--crates/ra_hir/src/code_model_impl/module.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/crates/ra_hir/src/code_model_impl/module.rs b/crates/ra_hir/src/code_model_impl/module.rs
index 418d59c91..c6f85ac82 100644
--- a/crates/ra_hir/src/code_model_impl/module.rs
+++ b/crates/ra_hir/src/code_model_impl/module.rs
@@ -5,6 +5,7 @@ use crate::{
5 Module, ModuleSource, Problem, 5 Module, ModuleSource, Problem,
6 Crate, Name, 6 Crate, Name,
7 module_tree::ModuleId, 7 module_tree::ModuleId,
8 impl_block::ImplId,
8 nameres::{lower::ImportId}, 9 nameres::{lower::ImportId},
9 db::HirDatabase, 10 db::HirDatabase,
10}; 11};
@@ -51,11 +52,21 @@ impl Module {
51 db: &impl HirDatabase, 52 db: &impl HirDatabase,
52 import: ImportId, 53 import: ImportId,
53 ) -> TreeArc<ast::PathSegment> { 54 ) -> TreeArc<ast::PathSegment> {
54 let source_map = db.lower_module_source_map(self.clone()); 55 let source_map = db.lower_module_source_map(*self);
55 let (_, source) = self.definition_source(db); 56 let (_, source) = self.definition_source(db);
56 source_map.get(&source, import) 57 source_map.get(&source, import)
57 } 58 }
58 59
60 pub(crate) fn impl_source_impl(
61 &self,
62 db: &impl HirDatabase,
63 impl_id: ImplId,
64 ) -> TreeArc<ast::ImplBlock> {
65 let source_map = db.impls_in_module_source_map(*self);
66 let (_, source) = self.definition_source(db);
67 source_map.get(&source, impl_id)
68 }
69
59 pub(crate) fn krate_impl(&self, _db: &impl HirDatabase) -> Option<Crate> { 70 pub(crate) fn krate_impl(&self, _db: &impl HirDatabase) -> Option<Crate> {
60 Some(Crate::new(self.krate)) 71 Some(Crate::new(self.krate))
61 } 72 }