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 +- crates/ra_ide_api/src/completion/complete_dot.rs | 2 +- crates/ra_ide_api/src/goto_definition.rs | 2 +- crates/ra_ide_api/src/hover.rs | 2 +- 9 files changed, 16 insertions(+), 21 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 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)?; diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index 886dc54d4..cb86ba9a3 100644 --- a/crates/ra_ide_api/src/completion/complete_dot.rs +++ b/crates/ra_ide_api/src/completion/complete_dot.rs @@ -10,7 +10,7 @@ pub(super) fn complete_dot(acc: &mut Completions, ctx: &CompletionContext) -> Ca _ => return Ok(()), }; let infer_result = function.infer(ctx.db)?; - let syntax_mapping = function.body_syntax_mapping(ctx.db)?; + let syntax_mapping = function.body_syntax_mapping(ctx.db); let expr = match syntax_mapping.node_expr(receiver) { Some(expr) => expr, None => return Ok(()), diff --git a/crates/ra_ide_api/src/goto_definition.rs b/crates/ra_ide_api/src/goto_definition.rs index 7229293a4..46fd6883f 100644 --- a/crates/ra_ide_api/src/goto_definition.rs +++ b/crates/ra_ide_api/src/goto_definition.rs @@ -64,7 +64,7 @@ pub(crate) fn reference_definition( .and_then(ast::MethodCallExpr::cast) { let infer_result = function.infer(db)?; - let syntax_mapping = function.body_syntax_mapping(db)?; + let syntax_mapping = function.body_syntax_mapping(db); let expr = ast::Expr::cast(method_call.syntax()).unwrap(); if let Some(def_id) = syntax_mapping .node_expr(expr) diff --git a/crates/ra_ide_api/src/hover.rs b/crates/ra_ide_api/src/hover.rs index 26f3ced70..0e9c48421 100644 --- a/crates/ra_ide_api/src/hover.rs +++ b/crates/ra_ide_api/src/hover.rs @@ -74,7 +74,7 @@ pub(crate) fn type_of(db: &RootDatabase, frange: FileRange) -> Cancelable