diff options
author | Florian Diebold <[email protected]> | 2019-01-05 21:37:59 +0000 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2019-01-05 23:29:36 +0000 |
commit | 8e3e5ab2c81f238ea4e731f55eac79b74d9d84c3 (patch) | |
tree | e0388878b4d94ae71fbf82d3e3163c49c8e69c16 /crates/ra_analysis/src/imp.rs | |
parent | 136aba1cf32646278c4034541ee415f656f8bb5e (diff) |
Make FnScopes use hir::Expr
This was a bit complicated. I've added a wrapper type for now that does the
LocalSyntaxPtr <-> ExprId translation; we might want to get rid of that or give
it a nicer interface.
Diffstat (limited to 'crates/ra_analysis/src/imp.rs')
-rw-r--r-- | crates/ra_analysis/src/imp.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index 6ab3c5476..5988fb779 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs | |||
@@ -157,7 +157,7 @@ impl db::RootDatabase { | |||
157 | .collect::<Vec<_>>(); | 157 | .collect::<Vec<_>>(); |
158 | ret.extend( | 158 | ret.extend( |
159 | descr | 159 | descr |
160 | .scopes(self) | 160 | .scopes(self)? |
161 | .find_all_refs(binding) | 161 | .find_all_refs(binding) |
162 | .into_iter() | 162 | .into_iter() |
163 | .map(|ref_desc| (position.file_id, ref_desc.range)), | 163 | .map(|ref_desc| (position.file_id, ref_desc.range)), |
@@ -185,7 +185,7 @@ impl db::RootDatabase { | |||
185 | position.file_id, | 185 | position.file_id, |
186 | name_ref.syntax(), | 186 | name_ref.syntax(), |
187 | )?); | 187 | )?); |
188 | let scope = descr.scopes(db); | 188 | let scope = descr.scopes(db)?; |
189 | let resolved = ctry!(scope.resolve_local_name(name_ref)); | 189 | let resolved = ctry!(scope.resolve_local_name(name_ref)); |
190 | let resolved = resolved.ptr().resolve(source_file); | 190 | let resolved = resolved.ptr().resolve(source_file); |
191 | let binding = ctry!(find_node_at_offset::<ast::BindPat>( | 191 | let binding = ctry!(find_node_at_offset::<ast::BindPat>( |