diff options
author | Aleksey Kladov <[email protected]> | 2018-10-31 12:13:49 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-10-31 12:13:49 +0000 |
commit | c02be1502c76cc504ccf7f73dce929585c94377c (patch) | |
tree | af21ab880f246e50209789614b45248d1f27ddd3 /crates/ra_editor/src/lib.rs | |
parent | b67295134bf5c518b39bc88abbe1bc5b9d7d3baf (diff) |
move resolve local name
Diffstat (limited to 'crates/ra_editor/src/lib.rs')
-rw-r--r-- | crates/ra_editor/src/lib.rs | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/crates/ra_editor/src/lib.rs b/crates/ra_editor/src/lib.rs index b73eb4ac7..ddcb6c6a2 100644 --- a/crates/ra_editor/src/lib.rs +++ b/crates/ra_editor/src/lib.rs | |||
@@ -151,15 +151,7 @@ pub fn find_node_at_offset<'a, N: AstNode<'a>>( | |||
151 | leaf.ancestors().filter_map(N::cast).next() | 151 | leaf.ancestors().filter_map(N::cast).next() |
152 | } | 152 | } |
153 | 153 | ||
154 | pub fn resolve_local_name( | 154 | |
155 | name_ref: ast::NameRef, | ||
156 | ) -> Option<(SmolStr, TextRange)> { | ||
157 | let fn_def = name_ref.syntax().ancestors().find_map(ast::FnDef::cast)?; | ||
158 | let scopes = scope::FnScopes::new(fn_def); | ||
159 | let scope_entry = scope::resolve_local_name(name_ref, &scopes)?; | ||
160 | let name = scope_entry.ast().name()?; | ||
161 | Some((scope_entry.name(), name.syntax().range())) | ||
162 | } | ||
163 | 155 | ||
164 | #[cfg(test)] | 156 | #[cfg(test)] |
165 | mod tests { | 157 | mod tests { |