diff options
Diffstat (limited to 'crates/ra_ide_api/src/impls.rs')
-rw-r--r-- | crates/ra_ide_api/src/impls.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/ra_ide_api/src/impls.rs b/crates/ra_ide_api/src/impls.rs index 6d69f36aa..15999d433 100644 --- a/crates/ra_ide_api/src/impls.rs +++ b/crates/ra_ide_api/src/impls.rs | |||
@@ -9,19 +9,19 @@ pub(crate) fn goto_implementation( | |||
9 | position: FilePosition, | 9 | position: FilePosition, |
10 | ) -> Option<RangeInfo<Vec<NavigationTarget>>> { | 10 | ) -> Option<RangeInfo<Vec<NavigationTarget>>> { |
11 | let parse = db.parse(position.file_id); | 11 | let parse = db.parse(position.file_id); |
12 | let syntax = parse.tree().syntax(); | 12 | let syntax = parse.tree().syntax().clone(); |
13 | 13 | ||
14 | let module = source_binder::module_from_position(db, position)?; | 14 | let module = source_binder::module_from_position(db, position)?; |
15 | 15 | ||
16 | if let Some(nominal_def) = find_node_at_offset::<ast::NominalDef>(syntax, position.offset) { | 16 | if let Some(nominal_def) = find_node_at_offset::<ast::NominalDef>(&syntax, position.offset) { |
17 | return Some(RangeInfo::new( | 17 | return Some(RangeInfo::new( |
18 | nominal_def.syntax().range(), | 18 | nominal_def.syntax().range(), |
19 | impls_for_def(db, nominal_def, module)?, | 19 | impls_for_def(db, &nominal_def, module)?, |
20 | )); | 20 | )); |
21 | } else if let Some(trait_def) = find_node_at_offset::<ast::TraitDef>(syntax, position.offset) { | 21 | } else if let Some(trait_def) = find_node_at_offset::<ast::TraitDef>(&syntax, position.offset) { |
22 | return Some(RangeInfo::new( | 22 | return Some(RangeInfo::new( |
23 | trait_def.syntax().range(), | 23 | trait_def.syntax().range(), |
24 | impls_for_trait(db, trait_def, module)?, | 24 | impls_for_trait(db, &trait_def, module)?, |
25 | )); | 25 | )); |
26 | } | 26 | } |
27 | 27 | ||