From c2abd17f57fa14960e8a175bdabe49eb365a585f Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 28 Nov 2018 02:13:52 +0300 Subject: Use ItemPtr for id --- crates/ra_analysis/src/hir/function/mod.rs | 10 ++++++---- crates/ra_analysis/src/hir/query_definitions.rs | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'crates/ra_analysis/src/hir') diff --git a/crates/ra_analysis/src/hir/function/mod.rs b/crates/ra_analysis/src/hir/function/mod.rs index 9ca8f4e7c..280218fd4 100644 --- a/crates/ra_analysis/src/hir/function/mod.rs +++ b/crates/ra_analysis/src/hir/function/mod.rs @@ -11,8 +11,8 @@ use ra_syntax::{ }; use crate::{ - hir::HirDatabase, - syntax_ptr::SyntaxPtr, FileId, + hir::{HirDatabase, SourceItemId}, + FileId, }; pub(crate) use self::scope::FnScopes; @@ -20,8 +20,10 @@ pub(crate) use crate::loc2id::FnId; impl FnId { pub(crate) fn get(db: &impl HirDatabase, file_id: FileId, fn_def: ast::FnDef) -> FnId { - let ptr = SyntaxPtr::new(file_id, fn_def.syntax()); - db.id_maps().fn_id(ptr) + let file_items = db.file_items(file_id); + let item_id = file_items.id_of(fn_def.syntax()); + let item_id = SourceItemId { file_id, item_id }; + db.id_maps().fn_id(item_id) } } diff --git a/crates/ra_analysis/src/hir/query_definitions.rs b/crates/ra_analysis/src/hir/query_definitions.rs index cdd986ce4..6c633e9ab 100644 --- a/crates/ra_analysis/src/hir/query_definitions.rs +++ b/crates/ra_analysis/src/hir/query_definitions.rs @@ -26,8 +26,8 @@ use crate::{ /// Resolve `FnId` to the corresponding `SyntaxNode` pub(super) fn fn_syntax(db: &impl HirDatabase, fn_id: FnId) -> FnDefNode { - let ptr = db.id_maps().fn_ptr(fn_id); - let syntax = db.resolve_syntax_ptr(ptr); + let item_id = db.id_maps().fn_item_id(fn_id); + let syntax = db.file_item(item_id); FnDef::cast(syntax.borrowed()).unwrap().owned() } -- cgit v1.2.3