From 040a622c5277511b4835fa35b72c314bf080b8cc Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 15 Jan 2019 19:01:59 +0300 Subject: remove Cancelable from funciton body --- crates/ra_hir/src/code_model_api.rs | 4 ++-- crates/ra_hir/src/code_model_impl/function.rs | 2 +- crates/ra_hir/src/db.rs | 4 ++-- crates/ra_hir/src/expr.rs | 17 ++++++----------- crates/ra_hir/src/query_definitions.rs | 2 +- crates/ra_hir/src/ty.rs | 2 +- 6 files changed, 13 insertions(+), 18 deletions(-) (limited to 'crates/ra_hir') diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index f28e077c6..87175476b 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -301,13 +301,13 @@ impl Function { def_id_to_ast(db, self.def_id) } - pub fn body_syntax_mapping(&self, db: &impl HirDatabase) -> Cancelable> { + pub fn body_syntax_mapping(&self, db: &impl HirDatabase) -> Arc { db.body_syntax_mapping(self.def_id) } pub fn scopes(&self, db: &impl HirDatabase) -> Cancelable { let scopes = db.fn_scopes(self.def_id)?; - let syntax_mapping = db.body_syntax_mapping(self.def_id)?; + let syntax_mapping = db.body_syntax_mapping(self.def_id); Ok(ScopesWithSyntaxMapping { scopes, syntax_mapping, diff --git a/crates/ra_hir/src/code_model_impl/function.rs b/crates/ra_hir/src/code_model_impl/function.rs index 8d6b7fc19..d34803e32 100644 --- a/crates/ra_hir/src/code_model_impl/function.rs +++ b/crates/ra_hir/src/code_model_impl/function.rs @@ -20,7 +20,7 @@ impl Function { Function { def_id } } - pub(crate) fn body(&self, db: &impl HirDatabase) -> Cancelable> { + pub(crate) fn body(&self, db: &impl HirDatabase) -> Arc { db.body_hir(self.def_id) } diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index 6229f9778..c81b8f5f4 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs @@ -107,12 +107,12 @@ pub trait HirDatabase: SyntaxDatabase use fn crate::ty::method_resolution::CrateImplBlocks::impls_in_crate_query; } - fn body_hir(def_id: DefId) -> Cancelable> { + fn body_hir(def_id: DefId) -> Arc { type BodyHirQuery; use fn crate::expr::body_hir; } - fn body_syntax_mapping(def_id: DefId) -> Cancelable> { + fn body_syntax_mapping(def_id: DefId) -> Arc { type BodySyntaxMappingQuery; use fn crate::expr::body_syntax_mapping; } diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs index a1e8da348..4e8dc0c54 100644 --- a/crates/ra_hir/src/expr.rs +++ b/crates/ra_hir/src/expr.rs @@ -4,10 +4,8 @@ use std::sync::Arc; use rustc_hash::FxHashMap; use ra_arena::{Arena, RawId, impl_arena_id, map::ArenaMap}; -use ra_db::{LocalSyntaxPtr, Cancelable}; -use ra_syntax::{ - ast::{self, AstNode, LoopBodyOwner, ArgListOwner, NameOwner, LiteralFlavor} -}; +use ra_db::LocalSyntaxPtr; +use ra_syntax::ast::{self, AstNode, LoopBodyOwner, ArgListOwner, NameOwner, LiteralFlavor}; use crate::{Path, type_ref::{Mutability, TypeRef}, Name, HirDatabase, DefId, Def, name::AsName}; use crate::ty::primitive::{UintTy, UncertainIntTy, UncertainFloatTy}; @@ -358,8 +356,8 @@ impl Pat { // Queries -pub(crate) fn body_hir(db: &impl HirDatabase, def_id: DefId) -> Cancelable> { - Ok(Arc::clone(&body_syntax_mapping(db, def_id)?.body)) +pub(crate) fn body_hir(db: &impl HirDatabase, def_id: DefId) -> Arc { + Arc::clone(&body_syntax_mapping(db, def_id).body) } struct ExprCollector { @@ -828,10 +826,7 @@ pub(crate) fn collect_fn_body_syntax(node: &ast::FnDef) -> BodySyntaxMapping { collector.into_body_syntax_mapping(params, body) } -pub(crate) fn body_syntax_mapping( - db: &impl HirDatabase, - def_id: DefId, -) -> Cancelable> { +pub(crate) fn body_syntax_mapping(db: &impl HirDatabase, def_id: DefId) -> Arc { let def = def_id.resolve(db); let body_syntax_mapping = match def { @@ -840,5 +835,5 @@ pub(crate) fn body_syntax_mapping( _ => panic!("Trying to get body for item type without body"), }; - Ok(Arc::new(body_syntax_mapping)) + Arc::new(body_syntax_mapping) } diff --git a/crates/ra_hir/src/query_definitions.rs b/crates/ra_hir/src/query_definitions.rs index 7ff942f6a..31086d1e1 100644 --- a/crates/ra_hir/src/query_definitions.rs +++ b/crates/ra_hir/src/query_definitions.rs @@ -19,7 +19,7 @@ use crate::{ }; pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Cancelable> { - let body = db.body_hir(def_id)?; + let body = db.body_hir(def_id); let res = FnScopes::new(body); Ok(Arc::new(res)) } diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 3607969ed..519660084 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -1205,7 +1205,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { pub fn infer(db: &impl HirDatabase, def_id: DefId) -> Cancelable> { db.check_canceled(); let function = Function::new(def_id); // TODO: consts also need inference - let body = function.body(db)?; + let body = function.body(db); let scopes = db.fn_scopes(def_id)?; let module = function.module(db)?; let impl_block = function.impl_block(db)?; -- cgit v1.2.3 From 18e9a710cd2f2ced84fde19e88d0b967dcb5939e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 15 Jan 2019 19:04:49 +0300 Subject: remove Cancelable from fn_scopes --- crates/ra_hir/src/code_model_api.rs | 8 ++++---- crates/ra_hir/src/db.rs | 2 +- crates/ra_hir/src/query_definitions.rs | 4 ++-- crates/ra_hir/src/ty.rs | 2 +- crates/ra_hir/src/ty/tests.rs | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) (limited to 'crates/ra_hir') diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 87175476b..4d7925ac4 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -305,13 +305,13 @@ impl Function { db.body_syntax_mapping(self.def_id) } - pub fn scopes(&self, db: &impl HirDatabase) -> Cancelable { - let scopes = db.fn_scopes(self.def_id)?; + pub fn scopes(&self, db: &impl HirDatabase) -> ScopesWithSyntaxMapping { + let scopes = db.fn_scopes(self.def_id); let syntax_mapping = db.body_syntax_mapping(self.def_id); - Ok(ScopesWithSyntaxMapping { + ScopesWithSyntaxMapping { scopes, syntax_mapping, - }) + } } pub fn signature(&self, db: &impl HirDatabase) -> Arc { diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index c81b8f5f4..d20c03f43 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs @@ -32,7 +32,7 @@ pub trait HirDatabase: SyntaxDatabase use fn crate::macros::expand_macro_invocation; } - fn fn_scopes(def_id: DefId) -> Cancelable> { + fn fn_scopes(def_id: DefId) -> Arc { type FnScopesQuery; use fn query_definitions::fn_scopes; } diff --git a/crates/ra_hir/src/query_definitions.rs b/crates/ra_hir/src/query_definitions.rs index 31086d1e1..8f33ec707 100644 --- a/crates/ra_hir/src/query_definitions.rs +++ b/crates/ra_hir/src/query_definitions.rs @@ -18,10 +18,10 @@ use crate::{ nameres::{InputModuleItems, ItemMap, Resolver}, }; -pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Cancelable> { +pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Arc { let body = db.body_hir(def_id); let res = FnScopes::new(body); - Ok(Arc::new(res)) + Arc::new(res) } pub(super) fn file_items(db: &impl HirDatabase, file_id: HirFileId) -> Arc { diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 519660084..54eece165 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -1206,7 +1206,7 @@ pub fn infer(db: &impl HirDatabase, def_id: DefId) -> Cancelable String { { let func = source_binder::function_from_source(&db, file_id, fn_def).unwrap(); let inference_result = func.infer(&db).unwrap(); - let body_syntax_mapping = func.body_syntax_mapping(&db).unwrap(); + let body_syntax_mapping = func.body_syntax_mapping(&db); let mut types = Vec::new(); for (pat, ty) in inference_result.type_of_pat.iter() { let syntax_ptr = match body_syntax_mapping.pat_syntax(pat) { -- cgit v1.2.3