From fafcd103d26821a8408572514201a40765bb2d2b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 15 Jan 2019 19:18:52 +0300 Subject: remove Cancelable from ids --- crates/ra_hir/src/code_model_impl/function.rs | 5 ++--- crates/ra_hir/src/db.rs | 2 +- crates/ra_hir/src/ids.rs | 20 ++++++++------------ crates/ra_hir/src/impl_block.rs | 12 +++++------- crates/ra_hir/src/ty.rs | 12 ++++++------ crates/ra_hir/src/ty/method_resolution.rs | 10 +++++----- 6 files changed, 27 insertions(+), 34 deletions(-) (limited to 'crates') diff --git a/crates/ra_hir/src/code_model_impl/function.rs b/crates/ra_hir/src/code_model_impl/function.rs index d34803e32..66d7e1713 100644 --- a/crates/ra_hir/src/code_model_impl/function.rs +++ b/crates/ra_hir/src/code_model_impl/function.rs @@ -2,7 +2,6 @@ mod scope; use std::sync::Arc; -use ra_db::Cancelable; use ra_syntax::{TreeArc, ast::{self, NameOwner}}; use crate::{ @@ -24,12 +23,12 @@ impl Function { db.body_hir(self.def_id) } - pub(crate) fn module(&self, db: &impl HirDatabase) -> Cancelable { + pub(crate) fn module(&self, db: &impl HirDatabase) -> Module { self.def_id.module(db) } /// The containing impl block, if this is a method. - pub(crate) fn impl_block(&self, db: &impl HirDatabase) -> Cancelable> { + pub(crate) fn impl_block(&self, db: &impl HirDatabase) -> Option { self.def_id.impl_block(db) } } diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index 1466c3438..161a5e714 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs @@ -97,7 +97,7 @@ pub trait HirDatabase: SyntaxDatabase use fn crate::module_tree::ModuleTree::module_tree_query; } - fn impls_in_module(source_root_id: SourceRootId, module_id: ModuleId) -> Cancelable> { + fn impls_in_module(source_root_id: SourceRootId, module_id: ModuleId) -> Arc { type ImplsInModuleQuery; use fn crate::impl_block::impls_in_module; } diff --git a/crates/ra_hir/src/ids.rs b/crates/ra_hir/src/ids.rs index 3cbf8070f..0d8e67547 100644 --- a/crates/ra_hir/src/ids.rs +++ b/crates/ra_hir/src/ids.rs @@ -1,4 +1,4 @@ -use ra_db::{SourceRootId, LocationIntener, Cancelable, FileId}; +use ra_db::{SourceRootId, LocationIntener, FileId}; use ra_syntax::{TreeArc, SyntaxKind, SyntaxNode, SourceFile, AstNode, ast}; use ra_arena::{Arena, RawId, impl_arena_id}; @@ -205,25 +205,21 @@ impl DefId { } /// For a module, returns that module; for any other def, returns the containing module. - pub fn module(self, db: &impl HirDatabase) -> Cancelable { + pub fn module(self, db: &impl HirDatabase) -> Module { let loc = self.loc(db); - Ok(Module::from_module_id( - db, - loc.source_root_id, - loc.module_id, - )) + Module::from_module_id(db, loc.source_root_id, loc.module_id) } /// Returns the containing crate. - pub fn krate(&self, db: &impl HirDatabase) -> Cancelable> { - Ok(self.module(db)?.krate(db)) + pub fn krate(&self, db: &impl HirDatabase) -> Option { + self.module(db).krate(db) } /// Returns the containing impl block, if this is an impl item. - pub fn impl_block(self, db: &impl HirDatabase) -> Cancelable> { + pub fn impl_block(self, db: &impl HirDatabase) -> Option { let loc = self.loc(db); - let module_impls = db.impls_in_module(loc.source_root_id, loc.module_id)?; - Ok(ImplBlock::containing(module_impls, self)) + let module_impls = db.impls_in_module(loc.source_root_id, loc.module_id); + ImplBlock::containing(module_impls, self) } } diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs index ce9087b49..ab996a12c 100644 --- a/crates/ra_hir/src/impl_block.rs +++ b/crates/ra_hir/src/impl_block.rs @@ -3,7 +3,7 @@ use rustc_hash::FxHashMap; use ra_arena::{Arena, RawId, impl_arena_id}; use ra_syntax::ast::{self, AstNode}; -use ra_db::{LocationIntener, Cancelable, SourceRootId}; +use ra_db::{LocationIntener, SourceRootId}; use crate::{ DefId, DefLoc, DefKind, SourceItemId, SourceFileItems, @@ -166,7 +166,7 @@ impl ModuleImplBlocks { } } - fn collect(&mut self, db: &impl HirDatabase, module: Module) -> Cancelable<()> { + fn collect(&mut self, db: &impl HirDatabase, module: Module) { let (file_id, module_source) = module.definition_source(db); let node = match &module_source { ModuleSource::SourceFile(node) => node.syntax(), @@ -185,8 +185,6 @@ impl ModuleImplBlocks { self.impls_by_def.insert(impl_item.def_id(), id); } } - - Ok(()) } } @@ -194,9 +192,9 @@ pub(crate) fn impls_in_module( db: &impl HirDatabase, source_root_id: SourceRootId, module_id: ModuleId, -) -> Cancelable> { +) -> Arc { let mut result = ModuleImplBlocks::new(); let module = Module::from_module_id(db, source_root_id, module_id); - result.collect(db, module)?; - Ok(Arc::new(result)) + result.collect(db, module); + Arc::new(result) } diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 6df7820ea..e5f8ffc2e 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -447,8 +447,8 @@ impl fmt::Display for Ty { /// function body. fn type_for_fn(db: &impl HirDatabase, f: Function) -> Cancelable { let signature = f.signature(db); - let module = f.module(db)?; - let impl_block = f.impl_block(db)?; + let module = f.module(db); + let impl_block = f.impl_block(db); // TODO we ignore type parameters for now let input = signature .params() @@ -517,8 +517,8 @@ pub(super) fn type_for_field( def_id ), }; - let module = def_id.module(db)?; - let impl_block = def_id.impl_block(db)?; + let module = def_id.module(db); + let impl_block = def_id.impl_block(db); let type_ref = ctry!(variant_data.get_field_type_ref(&field)); Ok(Some(Ty::from_hir( db, @@ -1207,8 +1207,8 @@ pub fn infer(db: &impl HirDatabase, def_id: DefId) -> Cancelable Cancelable<()> { let module_id = module.def_id.loc(db).module_id; - let module_impl_blocks = db.impls_in_module(self.source_root_id, module_id)?; + let module_impl_blocks = db.impls_in_module(self.source_root_id, module_id); for (impl_id, impl_data) in module_impl_blocks.impls.iter() { let impl_block = ImplBlock::from_id(Arc::clone(&module_impl_blocks), impl_id); @@ -100,10 +100,10 @@ impl CrateImplBlocks { } } -fn def_crate(db: &impl HirDatabase, ty: &Ty) -> Cancelable> { +fn def_crate(db: &impl HirDatabase, ty: &Ty) -> Option { match ty { Ty::Adt { def_id, .. } => def_id.krate(db), - _ => Ok(None), + _ => None, } } @@ -139,7 +139,7 @@ impl Ty { // rustc does an autoderef and then autoref again). for derefed_ty in self.autoderef(db) { - let krate = match def_crate(db, &derefed_ty)? { + let krate = match def_crate(db, &derefed_ty) { Some(krate) => krate, None => continue, }; -- cgit v1.2.3