remove Cancelable from fn_scopes

This commit is contained in:
Aleksey Kladov 2019-01-15 19:04:49 +03:00
parent 040a622c52
commit 18e9a710cd
8 changed files with 13 additions and 13 deletions

View file

@ -305,13 +305,13 @@ impl Function {
db.body_syntax_mapping(self.def_id)
}
pub fn scopes(&self, db: &impl HirDatabase) -> Cancelable<ScopesWithSyntaxMapping> {
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<FnSignature> {

View file

@ -32,7 +32,7 @@ pub trait HirDatabase: SyntaxDatabase
use fn crate::macros::expand_macro_invocation;
}
fn fn_scopes(def_id: DefId) -> Cancelable<Arc<FnScopes>> {
fn fn_scopes(def_id: DefId) -> Arc<FnScopes> {
type FnScopesQuery;
use fn query_definitions::fn_scopes;
}

View file

@ -18,10 +18,10 @@ use crate::{
nameres::{InputModuleItems, ItemMap, Resolver},
};
pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Cancelable<Arc<FnScopes>> {
pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Arc<FnScopes> {
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<SourceFileItems> {

View file

@ -1206,7 +1206,7 @@ pub fn infer(db: &impl HirDatabase, def_id: DefId) -> Cancelable<Arc<InferenceRe
db.check_canceled();
let function = Function::new(def_id); // TODO: consts also need inference
let body = function.body(db);
let scopes = db.fn_scopes(def_id)?;
let scopes = db.fn_scopes(def_id);
let module = function.module(db)?;
let impl_block = function.impl_block(db)?;
let mut ctx = InferenceContext::new(db, body, scopes, module, impl_block);

View file

@ -322,7 +322,7 @@ fn infer(content: &str) -> 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) {