From 4dffdcf14abe0c79f9d7a9702be77958be1f75b1 Mon Sep 17 00:00:00 2001 From: csmoe Date: Fri, 1 Feb 2019 18:33:41 +0800 Subject: split HirDatabase api --- crates/ra_hir/src/code_model_impl/function.rs | 7 +++++-- crates/ra_hir/src/code_model_impl/krate.rs | 10 ++++++---- crates/ra_hir/src/code_model_impl/module.rs | 16 +++++++++++----- 3 files changed, 22 insertions(+), 11 deletions(-) (limited to 'crates/ra_hir/src/code_model_impl') diff --git a/crates/ra_hir/src/code_model_impl/function.rs b/crates/ra_hir/src/code_model_impl/function.rs index 422643996..5b0b31b1d 100644 --- a/crates/ra_hir/src/code_model_impl/function.rs +++ b/crates/ra_hir/src/code_model_impl/function.rs @@ -5,7 +5,7 @@ use ra_syntax::ast::{self, NameOwner}; use crate::{ HirDatabase, Name, AsName, Function, FnSignature, type_ref::{TypeRef, Mutability}, - expr::Body, + expr::Body, PersistentHirDatabase, impl_block::ImplBlock, }; @@ -22,7 +22,10 @@ impl Function { } impl FnSignature { - pub(crate) fn fn_signature_query(db: &impl HirDatabase, func: Function) -> Arc { + pub(crate) fn fn_signature_query( + db: &impl PersistentHirDatabase, + func: Function, + ) -> Arc { let (_, node) = func.source(db); let name = node .name() diff --git a/crates/ra_hir/src/code_model_impl/krate.rs b/crates/ra_hir/src/code_model_impl/krate.rs index 86f29d959..1517434b8 100644 --- a/crates/ra_hir/src/code_model_impl/krate.rs +++ b/crates/ra_hir/src/code_model_impl/krate.rs @@ -1,10 +1,12 @@ use crate::{ - Crate, CrateDependency, AsName, Module, - db::HirDatabase, + Crate, CrateDependency, AsName, Module, PersistentHirDatabase, }; impl Crate { - pub(crate) fn dependencies_impl(&self, db: &impl HirDatabase) -> Vec { + pub(crate) fn dependencies_impl( + &self, + db: &impl PersistentHirDatabase, + ) -> Vec { let crate_graph = db.crate_graph(); crate_graph .dependencies(self.crate_id) @@ -17,7 +19,7 @@ impl Crate { }) .collect() } - pub(crate) fn root_module_impl(&self, db: &impl HirDatabase) -> Option { + pub(crate) fn root_module_impl(&self, db: &impl PersistentHirDatabase) -> Option { let module_tree = db.module_tree(*self); let module_id = module_tree.modules().next()?; diff --git a/crates/ra_hir/src/code_model_impl/module.rs b/crates/ra_hir/src/code_model_impl/module.rs index 4a3901b8b..f487b8532 100644 --- a/crates/ra_hir/src/code_model_impl/module.rs +++ b/crates/ra_hir/src/code_model_impl/module.rs @@ -7,7 +7,7 @@ use crate::{ module_tree::ModuleId, impl_block::ImplId, nameres::{lower::ImportId}, - db::HirDatabase, + HirDatabase, PersistentHirDatabase, }; impl Module { @@ -24,7 +24,10 @@ impl Module { Some(link.name(&module_tree).clone()) } - pub(crate) fn definition_source_impl(&self, db: &impl HirDatabase) -> (FileId, ModuleSource) { + pub(crate) fn definition_source_impl( + &self, + db: &impl PersistentHirDatabase, + ) -> (FileId, ModuleSource) { let module_tree = db.module_tree(self.krate); let file_id = self.module_id.file_id(&module_tree); let decl_id = self.module_id.decl_id(&module_tree); @@ -67,7 +70,7 @@ impl Module { source_map.get(&source, impl_id) } - pub(crate) fn crate_root_impl(&self, db: &impl HirDatabase) -> Module { + pub(crate) fn crate_root_impl(&self, db: &impl PersistentHirDatabase) -> Module { let module_tree = db.module_tree(self.krate); let module_id = self.module_id.crate_root(&module_tree); self.with_module_id(module_id) @@ -81,7 +84,10 @@ impl Module { } /// Iterates over all child modules. - pub(crate) fn children_impl(&self, db: &impl HirDatabase) -> impl Iterator { + pub(crate) fn children_impl( + &self, + db: &impl PersistentHirDatabase, + ) -> impl Iterator { let module_tree = db.module_tree(self.krate); let children = self .module_id @@ -91,7 +97,7 @@ impl Module { children.into_iter() } - pub(crate) fn parent_impl(&self, db: &impl HirDatabase) -> Option { + pub(crate) fn parent_impl(&self, db: &impl PersistentHirDatabase) -> Option { let module_tree = db.module_tree(self.krate); let parent_id = self.module_id.parent(&module_tree)?; Some(self.with_module_id(parent_id)) -- cgit v1.2.3