From 8e3e5ab2c81f238ea4e731f55eac79b74d9d84c3 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 5 Jan 2019 22:37:59 +0100 Subject: Make FnScopes use hir::Expr This was a bit complicated. I've added a wrapper type for now that does the LocalSyntaxPtr <-> ExprId translation; we might want to get rid of that or give it a nicer interface. --- crates/ra_hir/src/query_definitions.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'crates/ra_hir/src/query_definitions.rs') diff --git a/crates/ra_hir/src/query_definitions.rs b/crates/ra_hir/src/query_definitions.rs index a5d99beda..d9ee9d37f 100644 --- a/crates/ra_hir/src/query_definitions.rs +++ b/crates/ra_hir/src/query_definitions.rs @@ -11,7 +11,7 @@ use ra_syntax::{ use ra_db::{SourceRootId, Cancelable,}; use crate::{ - SourceFileItems, SourceItemId, DefKind, Function, DefId, Name, AsName, HirFileId, + SourceFileItems, SourceItemId, DefKind, DefId, Name, AsName, HirFileId, MacroCallLoc, db::HirDatabase, function::FnScopes, @@ -23,11 +23,10 @@ use crate::{ adt::{StructData, EnumData}, }; -pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Arc { - let function = Function::new(def_id); - let syntax = function.syntax(db); - let res = FnScopes::new(syntax.borrowed()); - Arc::new(res) +pub(super) fn fn_scopes(db: &impl HirDatabase, def_id: DefId) -> Cancelable> { + let body = db.body_hir(def_id)?; + let res = FnScopes::new(body); + Ok(Arc::new(res)) } pub(super) fn struct_data(db: &impl HirDatabase, def_id: DefId) -> Cancelable> { -- cgit v1.2.3