aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/impl_block.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/impl_block.rs')
-rw-r--r--crates/ra_hir/src/impl_block.rs26
1 files changed, 13 insertions, 13 deletions
diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs
index 637f6ab83..ba90e67e9 100644
--- a/crates/ra_hir/src/impl_block.rs
+++ b/crates/ra_hir/src/impl_block.rs
@@ -8,7 +8,7 @@ use ra_syntax::{
8}; 8};
9 9
10use crate::{ 10use crate::{
11 Const, TypeAlias, Function, HirFileId, 11 Const, TypeAlias, Function, HirFileId, AstDatabase,
12 HirDatabase, DefDatabase, TraitRef, 12 HirDatabase, DefDatabase, TraitRef,
13 type_ref::TypeRef, 13 type_ref::TypeRef,
14 ids::LocationCtx, 14 ids::LocationCtx,
@@ -58,8 +58,11 @@ impl ImplBlock {
58 } 58 }
59 59
60 /// Returns the syntax of the impl block 60 /// Returns the syntax of the impl block
61 pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::ImplBlock>) { 61 pub fn source(
62 let source_map = db.impls_in_module_source_map(self.module); 62 &self,
63 db: &(impl DefDatabase + AstDatabase),
64 ) -> (HirFileId, TreeArc<ast::ImplBlock>) {
65 let source_map = db.impls_in_module_with_source_map(self.module).1;
63 let (file_id, source) = self.module.definition_source(db); 66 let (file_id, source) = self.module.definition_source(db);
64 (file_id, source_map.get(&source, self.impl_id)) 67 (file_id, source_map.get(&source, self.impl_id))
65 } 68 }
@@ -117,7 +120,7 @@ pub struct ImplData {
117 120
118impl ImplData { 121impl ImplData {
119 pub(crate) fn from_ast( 122 pub(crate) fn from_ast(
120 db: &impl DefDatabase, 123 db: &(impl DefDatabase + AstDatabase),
121 file_id: HirFileId, 124 file_id: HirFileId,
122 module: Module, 125 module: Module,
123 node: &ast::ImplBlock, 126 node: &ast::ImplBlock,
@@ -187,7 +190,11 @@ pub struct ModuleImplBlocks {
187} 190}
188 191
189impl ModuleImplBlocks { 192impl ModuleImplBlocks {
190 fn collect(db: &impl DefDatabase, module: Module, source_map: &mut ImplSourceMap) -> Self { 193 fn collect(
194 db: &(impl DefDatabase + AstDatabase),
195 module: Module,
196 source_map: &mut ImplSourceMap,
197 ) -> Self {
191 let mut m = ModuleImplBlocks { 198 let mut m = ModuleImplBlocks {
192 module, 199 module,
193 impls: Arena::default(), 200 impls: Arena::default(),
@@ -218,7 +225,7 @@ impl ModuleImplBlocks {
218} 225}
219 226
220pub(crate) fn impls_in_module_with_source_map_query( 227pub(crate) fn impls_in_module_with_source_map_query(
221 db: &impl DefDatabase, 228 db: &(impl DefDatabase + AstDatabase),
222 module: Module, 229 module: Module,
223) -> (Arc<ModuleImplBlocks>, Arc<ImplSourceMap>) { 230) -> (Arc<ModuleImplBlocks>, Arc<ImplSourceMap>) {
224 let mut source_map = ImplSourceMap::default(); 231 let mut source_map = ImplSourceMap::default();
@@ -231,10 +238,3 @@ pub(crate) fn impls_in_module_with_source_map_query(
231pub(crate) fn impls_in_module(db: &impl DefDatabase, module: Module) -> Arc<ModuleImplBlocks> { 238pub(crate) fn impls_in_module(db: &impl DefDatabase, module: Module) -> Arc<ModuleImplBlocks> {
232 db.impls_in_module_with_source_map(module).0 239 db.impls_in_module_with_source_map(module).0
233} 240}
234
235pub(crate) fn impls_in_module_source_map_query(
236 db: &impl DefDatabase,
237 module: Module,
238) -> Arc<ImplSourceMap> {
239 db.impls_in_module_with_source_map(module).1
240}