From 2734636c532101565b1a4c4715790d4cc910ad47 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 24 Jan 2019 15:40:52 +0300 Subject: update ide_api to new hir --- crates/ra_ide_api/src/navigation_target.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'crates/ra_ide_api/src/navigation_target.rs') diff --git a/crates/ra_ide_api/src/navigation_target.rs b/crates/ra_ide_api/src/navigation_target.rs index 1eb177665..19cea2fd6 100644 --- a/crates/ra_ide_api/src/navigation_target.rs +++ b/crates/ra_ide_api/src/navigation_target.rs @@ -96,6 +96,11 @@ impl NavigationTarget { NavigationTarget::from_module(db, module) } + pub(crate) fn from_function(db: &RootDatabase, func: hir::Function) -> NavigationTarget { + let (file_id, fn_def) = func.source(db); + NavigationTarget::from_named(file_id.original_file(db), &*fn_def) + } + // TODO once Def::Item is gone, this should be able to always return a NavigationTarget pub(crate) fn from_def( db: &RootDatabase, @@ -106,6 +111,9 @@ impl NavigationTarget { hir::ModuleDef::Module(module) => { return Some(NavigationTarget::from_module(db, module)); } + hir::ModuleDef::Function(func) => { + return Some(NavigationTarget::from_function(db, func)); + } }; let res = match def { @@ -121,10 +129,6 @@ impl NavigationTarget { let (file_id, node) = ev.source(db); NavigationTarget::from_named(file_id.original_file(db), &*node) } - Def::Function(f) => { - let (file_id, node) = f.source(db); - NavigationTarget::from_named(file_id.original_file(db), &*node) - } Def::Trait(f) => { let (file_id, node) = f.source(db); NavigationTarget::from_named(file_id.original_file(db), &*node) -- cgit v1.2.3