diff options
Diffstat (limited to 'crates/ra_ide_api/src/goto_definition.rs')
-rw-r--r-- | crates/ra_ide_api/src/goto_definition.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/crates/ra_ide_api/src/goto_definition.rs b/crates/ra_ide_api/src/goto_definition.rs index afa59cbe3..713b61d5e 100644 --- a/crates/ra_ide_api/src/goto_definition.rs +++ b/crates/ra_ide_api/src/goto_definition.rs | |||
@@ -9,7 +9,7 @@ use ra_syntax::{ | |||
9 | 9 | ||
10 | use crate::{ | 10 | use crate::{ |
11 | db::RootDatabase, | 11 | db::RootDatabase, |
12 | display::ShortLabel, | 12 | display::{ShortLabel, ToNav}, |
13 | references::{classify_name_ref, NameKind::*}, | 13 | references::{classify_name_ref, NameKind::*}, |
14 | FilePosition, NavigationTarget, RangeInfo, | 14 | FilePosition, NavigationTarget, RangeInfo, |
15 | }; | 15 | }; |
@@ -56,16 +56,16 @@ pub(crate) fn reference_definition( | |||
56 | 56 | ||
57 | let name_kind = classify_name_ref(db, file_id, &name_ref).map(|d| d.kind); | 57 | let name_kind = classify_name_ref(db, file_id, &name_ref).map(|d| d.kind); |
58 | match name_kind { | 58 | match name_kind { |
59 | Some(Macro(mac)) => return Exact(NavigationTarget::from_macro_def(db, mac)), | 59 | Some(Macro(mac)) => return Exact(mac.to_nav(db)), |
60 | Some(Field(field)) => return Exact(NavigationTarget::from_field(db, field)), | 60 | Some(Field(field)) => return Exact(field.to_nav(db)), |
61 | Some(AssocItem(assoc)) => return Exact(NavigationTarget::from_assoc_item(db, assoc)), | 61 | Some(AssocItem(assoc)) => return Exact(assoc.to_nav(db)), |
62 | Some(Def(def)) => match NavigationTarget::from_def(db, def) { | 62 | Some(Def(def)) => match NavigationTarget::from_def(db, def) { |
63 | Some(nav) => return Exact(nav), | 63 | Some(nav) => return Exact(nav), |
64 | None => return Approximate(vec![]), | 64 | None => return Approximate(vec![]), |
65 | }, | 65 | }, |
66 | Some(SelfType(ty)) => { | 66 | Some(SelfType(ty)) => { |
67 | if let Some((def_id, _)) = ty.as_adt() { | 67 | if let Some((adt, _)) = ty.as_adt() { |
68 | return Exact(NavigationTarget::from_adt_def(db, def_id)); | 68 | return Exact(adt.to_nav(db)); |
69 | } | 69 | } |
70 | } | 70 | } |
71 | Some(Pat((_, pat))) => return Exact(NavigationTarget::from_pat(db, file_id, pat)), | 71 | Some(Pat((_, pat))) => return Exact(NavigationTarget::from_pat(db, file_id, pat)), |
@@ -79,7 +79,7 @@ pub(crate) fn reference_definition( | |||
79 | // Fallback index based approach: | 79 | // Fallback index based approach: |
80 | let navs = crate::symbol_index::index_resolve(db, name_ref) | 80 | let navs = crate::symbol_index::index_resolve(db, name_ref) |
81 | .into_iter() | 81 | .into_iter() |
82 | .map(|s| NavigationTarget::from_symbol(db, s)) | 82 | .map(|s| s.to_nav(db)) |
83 | .collect(); | 83 | .collect(); |
84 | Approximate(navs) | 84 | Approximate(navs) |
85 | } | 85 | } |
@@ -95,7 +95,7 @@ pub(crate) fn name_definition( | |||
95 | if module.has_semi() { | 95 | if module.has_semi() { |
96 | let src = hir::Source { file_id: file_id.into(), ast: module }; | 96 | let src = hir::Source { file_id: file_id.into(), ast: module }; |
97 | if let Some(child_module) = hir::Module::from_declaration(db, src) { | 97 | if let Some(child_module) = hir::Module::from_declaration(db, src) { |
98 | let nav = NavigationTarget::from_module(db, child_module); | 98 | let nav = child_module.to_nav(db); |
99 | return Some(vec![nav]); | 99 | return Some(vec![nav]); |
100 | } | 100 | } |
101 | } | 101 | } |