From ca52cf1ecd4f65ff2a8c3953c35b006e73a60ea8 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 15 Jan 2019 18:26:29 +0300 Subject: remove Cancelable from Module API --- crates/ra_hir/src/code_model_api.rs | 6 +++--- crates/ra_hir/src/code_model_impl/module.rs | 19 ++++++++----------- crates/ra_hir/src/impl_block.rs | 2 +- crates/ra_ide_api/src/completion/complete_scope.rs | 2 +- crates/ra_ide_api/src/navigation_target.rs | 8 ++++---- crates/ra_ide_api/src/runnables.rs | 3 +-- 6 files changed, 18 insertions(+), 22 deletions(-) (limited to 'crates') diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 5db53a34f..aed0ea958 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -78,12 +78,12 @@ pub enum Problem { impl Module { /// Name of this module. - pub fn name(&self, db: &impl HirDatabase) -> Cancelable> { + pub fn name(&self, db: &impl HirDatabase) -> Option { self.name_impl(db) } /// Returns a node which defines this module. That is, a file or a `mod foo {}` with items. - pub fn definition_source(&self, db: &impl HirDatabase) -> Cancelable<(FileId, ModuleSource)> { + pub fn definition_source(&self, db: &impl HirDatabase) -> (FileId, ModuleSource) { self.definition_source_impl(db) } @@ -92,7 +92,7 @@ impl Module { pub fn declaration_source( &self, db: &impl HirDatabase, - ) -> Cancelable)>> { + ) -> Option<(FileId, TreeArc)> { self.declaration_source_impl(db) } diff --git a/crates/ra_hir/src/code_model_impl/module.rs b/crates/ra_hir/src/code_model_impl/module.rs index 67808d282..127dcc570 100644 --- a/crates/ra_hir/src/code_model_impl/module.rs +++ b/crates/ra_hir/src/code_model_impl/module.rs @@ -30,17 +30,14 @@ impl Module { Module::new(def_id) } - pub(crate) fn name_impl(&self, db: &impl HirDatabase) -> Cancelable> { + pub(crate) fn name_impl(&self, db: &impl HirDatabase) -> Option { let loc = self.def_id.loc(db); let module_tree = db.module_tree(loc.source_root_id); - let link = ctry!(loc.module_id.parent_link(&module_tree)); - Ok(Some(link.name(&module_tree).clone())) + let link = loc.module_id.parent_link(&module_tree)?; + Some(link.name(&module_tree).clone()) } - pub fn definition_source_impl( - &self, - db: &impl HirDatabase, - ) -> Cancelable<(FileId, ModuleSource)> { + pub fn definition_source_impl(&self, db: &impl HirDatabase) -> (FileId, ModuleSource) { let loc = self.def_id.loc(db); let file_id = loc.source_item_id.file_id.as_original_file(); let syntax_node = db.file_item(loc.source_item_id); @@ -50,23 +47,23 @@ impl Module { let module = ast::Module::cast(&syntax_node).unwrap(); ModuleSource::Module(module.to_owned()) }; - Ok((file_id, module_source)) + (file_id, module_source) } pub fn declaration_source_impl( &self, db: &impl HirDatabase, - ) -> Cancelable)>> { + ) -> Option<(FileId, TreeArc)> { let loc = self.def_id.loc(db); let module_tree = db.module_tree(loc.source_root_id); - let link = ctry!(loc.module_id.parent_link(&module_tree)); + let link = loc.module_id.parent_link(&module_tree)?; let file_id = link .owner(&module_tree) .source(&module_tree) .file_id .as_original_file(); let src = link.source(&module_tree, db); - Ok(Some((file_id, src))) + Some((file_id, src)) } pub(crate) fn krate_impl(&self, db: &impl HirDatabase) -> Cancelable> { diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs index c9a9fb99f..ce9087b49 100644 --- a/crates/ra_hir/src/impl_block.rs +++ b/crates/ra_hir/src/impl_block.rs @@ -167,7 +167,7 @@ impl ModuleImplBlocks { } fn collect(&mut self, db: &impl HirDatabase, module: Module) -> Cancelable<()> { - let (file_id, module_source) = module.definition_source(db)?; + let (file_id, module_source) = module.definition_source(db); let node = match &module_source { ModuleSource::SourceFile(node) => node.syntax(), ModuleSource::Module(node) => node diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs index 770a0fdf2..f422bb9a7 100644 --- a/crates/ra_ide_api/src/completion/complete_scope.rs +++ b/crates/ra_ide_api/src/completion/complete_scope.rs @@ -20,7 +20,7 @@ pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) -> } let module_scope = module.scope(ctx.db)?; - let (file_id, _) = module.definition_source(ctx.db)?; + let (file_id, _) = module.definition_source(ctx.db); module_scope .entries() .filter(|(_name, res)| { diff --git a/crates/ra_ide_api/src/navigation_target.rs b/crates/ra_ide_api/src/navigation_target.rs index 230d0f67a..7562b9a1f 100644 --- a/crates/ra_ide_api/src/navigation_target.rs +++ b/crates/ra_ide_api/src/navigation_target.rs @@ -73,9 +73,9 @@ impl NavigationTarget { db: &RootDatabase, module: hir::Module, ) -> Cancelable { - let (file_id, source) = module.definition_source(db)?; + let (file_id, source) = module.definition_source(db); let name = module - .name(db)? + .name(db) .map(|it| it.to_string().into()) .unwrap_or_default(); let res = match source { @@ -94,10 +94,10 @@ impl NavigationTarget { module: hir::Module, ) -> Cancelable { let name = module - .name(db)? + .name(db) .map(|it| it.to_string().into()) .unwrap_or_default(); - if let Some((file_id, source)) = module.declaration_source(db)? { + if let Some((file_id, source)) = module.declaration_source(db) { return Ok(NavigationTarget::from_syntax( file_id, name, diff --git a/crates/ra_ide_api/src/runnables.rs b/crates/ra_ide_api/src/runnables.rs index 9fa0f79a6..c0d4bda94 100644 --- a/crates/ra_ide_api/src/runnables.rs +++ b/crates/ra_ide_api/src/runnables.rs @@ -83,8 +83,7 @@ fn runnable_mod(db: &RootDatabase, file_id: FileId, module: &ast::Module) -> Opt .ok()? .into_iter() .rev() - .filter_map(|it| it.name(db).ok()) - .filter_map(|it| it) + .filter_map(|it| it.name(db)) .join("::"); Some(Runnable { range, -- cgit v1.2.3