mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-04 12:44:40 +00:00
remove Cancelable from funciton body
This commit is contained in:
parent
7c977a7dcd
commit
040a622c52
@ -301,13 +301,13 @@ impl Function {
|
||||
def_id_to_ast(db, self.def_id)
|
||||
}
|
||||
|
||||
pub fn body_syntax_mapping(&self, db: &impl HirDatabase) -> Cancelable<Arc<BodySyntaxMapping>> {
|
||||
pub fn body_syntax_mapping(&self, db: &impl HirDatabase) -> Arc<BodySyntaxMapping> {
|
||||
db.body_syntax_mapping(self.def_id)
|
||||
}
|
||||
|
||||
pub fn scopes(&self, db: &impl HirDatabase) -> Cancelable<ScopesWithSyntaxMapping> {
|
||||
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,
|
||||
|
@ -20,7 +20,7 @@ impl Function {
|
||||
Function { def_id }
|
||||
}
|
||||
|
||||
pub(crate) fn body(&self, db: &impl HirDatabase) -> Cancelable<Arc<Body>> {
|
||||
pub(crate) fn body(&self, db: &impl HirDatabase) -> Arc<Body> {
|
||||
db.body_hir(self.def_id)
|
||||
}
|
||||
|
||||
|
@ -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<Arc<crate::expr::Body>> {
|
||||
fn body_hir(def_id: DefId) -> Arc<crate::expr::Body> {
|
||||
type BodyHirQuery;
|
||||
use fn crate::expr::body_hir;
|
||||
}
|
||||
|
||||
fn body_syntax_mapping(def_id: DefId) -> Cancelable<Arc<crate::expr::BodySyntaxMapping>> {
|
||||
fn body_syntax_mapping(def_id: DefId) -> Arc<crate::expr::BodySyntaxMapping> {
|
||||
type BodySyntaxMappingQuery;
|
||||
use fn crate::expr::body_syntax_mapping;
|
||||
}
|
||||
|
@ -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<Arc<Body>> {
|
||||
Ok(Arc::clone(&body_syntax_mapping(db, def_id)?.body))
|
||||
pub(crate) fn body_hir(db: &impl HirDatabase, def_id: DefId) -> Arc<Body> {
|
||||
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<Arc<BodySyntaxMapping>> {
|
||||
pub(crate) fn body_syntax_mapping(db: &impl HirDatabase, def_id: DefId) -> Arc<BodySyntaxMapping> {
|
||||
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)
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ use crate::{
|
||||
};
|
||||
|
||||
pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Cancelable<Arc<FnScopes>> {
|
||||
let body = db.body_hir(def_id)?;
|
||||
let body = db.body_hir(def_id);
|
||||
let res = FnScopes::new(body);
|
||||
Ok(Arc::new(res))
|
||||
}
|
||||
|
@ -1205,7 +1205,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
|
||||
pub fn infer(db: &impl HirDatabase, def_id: DefId) -> Cancelable<Arc<InferenceResult>> {
|
||||
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)?;
|
||||
|
@ -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(()),
|
||||
|
@ -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)
|
||||
|
@ -74,7 +74,7 @@ pub(crate) fn type_of(db: &RootDatabase, frange: FileRange) -> Cancelable<Option
|
||||
parent_fn
|
||||
));
|
||||
let infer = function.infer(db)?;
|
||||
let syntax_mapping = function.body_syntax_mapping(db)?;
|
||||
let syntax_mapping = function.body_syntax_mapping(db);
|
||||
if let Some(expr) = ast::Expr::cast(node).and_then(|e| syntax_mapping.node_expr(e)) {
|
||||
Ok(Some(infer[expr].to_string()))
|
||||
} else if let Some(pat) = ast::Pat::cast(node).and_then(|p| syntax_mapping.node_pat(p)) {
|
||||
|
Loading…
Reference in New Issue
Block a user