diff options
Diffstat (limited to 'crates/ra_ide_api/src/navigation_target.rs')
-rw-r--r-- | crates/ra_ide_api/src/navigation_target.rs | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/crates/ra_ide_api/src/navigation_target.rs b/crates/ra_ide_api/src/navigation_target.rs index fc76338d2..8406fee31 100644 --- a/crates/ra_ide_api/src/navigation_target.rs +++ b/crates/ra_ide_api/src/navigation_target.rs | |||
@@ -121,6 +121,20 @@ impl NavigationTarget { | |||
121 | &*node, | 121 | &*node, |
122 | )); | 122 | )); |
123 | } | 123 | } |
124 | hir::ModuleDef::Const(s) => { | ||
125 | let (file_id, node) = s.source(db); | ||
126 | return Some(NavigationTarget::from_named( | ||
127 | file_id.original_file(db), | ||
128 | &*node, | ||
129 | )); | ||
130 | } | ||
131 | hir::ModuleDef::Static(s) => { | ||
132 | let (file_id, node) = s.source(db); | ||
133 | return Some(NavigationTarget::from_named( | ||
134 | file_id.original_file(db), | ||
135 | &*node, | ||
136 | )); | ||
137 | } | ||
124 | hir::ModuleDef::Enum(e) => { | 138 | hir::ModuleDef::Enum(e) => { |
125 | let (file_id, node) = e.source(db); | 139 | let (file_id, node) = e.source(db); |
126 | return Some(NavigationTarget::from_named( | 140 | return Some(NavigationTarget::from_named( |
@@ -146,14 +160,6 @@ impl NavigationTarget { | |||
146 | let (file_id, node) = f.source(db); | 160 | let (file_id, node) = f.source(db); |
147 | NavigationTarget::from_named(file_id.original_file(db), &*node) | 161 | NavigationTarget::from_named(file_id.original_file(db), &*node) |
148 | } | 162 | } |
149 | Def::Static(f) => { | ||
150 | let (file_id, node) = f.source(db); | ||
151 | NavigationTarget::from_named(file_id.original_file(db), &*node) | ||
152 | } | ||
153 | Def::Const(f) => { | ||
154 | let (file_id, node) = f.source(db); | ||
155 | NavigationTarget::from_named(file_id.original_file(db), &*node) | ||
156 | } | ||
157 | Def::Item => return None, | 163 | Def::Item => return None, |
158 | }; | 164 | }; |
159 | Some(res) | 165 | Some(res) |