From 5af9e475f4acce54f8383ed22febc412cf2541d0 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 1 Jun 2019 21:17:57 +0300 Subject: add AstDatabase --- crates/ra_hir/src/impl_block.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'crates/ra_hir/src/impl_block.rs') diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs index 072670444..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::{ }; use crate::{ - Const, TypeAlias, Function, HirFileId, + Const, TypeAlias, Function, HirFileId, AstDatabase, HirDatabase, DefDatabase, TraitRef, type_ref::TypeRef, ids::LocationCtx, @@ -58,7 +58,10 @@ impl ImplBlock { } /// Returns the syntax of the impl block - pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc) { + pub fn source( + &self, + db: &(impl DefDatabase + AstDatabase), + ) -> (HirFileId, TreeArc) { let source_map = db.impls_in_module_with_source_map(self.module).1; let (file_id, source) = self.module.definition_source(db); (file_id, source_map.get(&source, self.impl_id)) @@ -117,7 +120,7 @@ pub struct ImplData { impl ImplData { pub(crate) fn from_ast( - db: &impl DefDatabase, + db: &(impl DefDatabase + AstDatabase), file_id: HirFileId, module: Module, node: &ast::ImplBlock, @@ -187,7 +190,11 @@ pub struct ModuleImplBlocks { } impl ModuleImplBlocks { - fn collect(db: &impl DefDatabase, module: Module, source_map: &mut ImplSourceMap) -> Self { + fn collect( + db: &(impl DefDatabase + AstDatabase), + module: Module, + source_map: &mut ImplSourceMap, + ) -> Self { let mut m = ModuleImplBlocks { module, impls: Arena::default(), @@ -218,7 +225,7 @@ impl ModuleImplBlocks { } pub(crate) fn impls_in_module_with_source_map_query( - db: &impl DefDatabase, + db: &(impl DefDatabase + AstDatabase), module: Module, ) -> (Arc, Arc) { let mut source_map = ImplSourceMap::default(); -- cgit v1.2.3