Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/extract_variable.rs')
-rw-r--r--crates/ide-assists/src/handlers/extract_variable.rs15
1 files changed, 7 insertions, 8 deletions
diff --git a/crates/ide-assists/src/handlers/extract_variable.rs b/crates/ide-assists/src/handlers/extract_variable.rs
index e1b91c9e89..97ba801bc8 100644
--- a/crates/ide-assists/src/handlers/extract_variable.rs
+++ b/crates/ide-assists/src/handlers/extract_variable.rs
@@ -101,7 +101,7 @@ pub(crate) fn extract_variable(acc: &mut Assists, ctx: &AssistContext<'_, '_>) -
let last_descend = ctx.sema.descend_into_macros_single_exact(last.clone());
let range = first_descend.text_range().cover(last_descend.text_range());
- if first_descend.parent_ancestors().last() != last_descend.parent_ancestors().last() {
+ if first_descend.tree_top() != last_descend.tree_top() {
return None;
}
@@ -198,13 +198,12 @@ pub(crate) fn extract_variable(acc: &mut Assists, ctx: &AssistContext<'_, '_>) -
|edit| {
let (var_name, expr_replace) = kind.get_name_and_expr(ctx, &analysis);
- let to_replace =
- if expr_replace.ancestors().last() == to_replace.start().ancestors().last() {
- let element = expr_replace.clone().syntax_element();
- element.clone()..=element
- } else {
- to_replace.clone()
- };
+ let to_replace = if expr_replace.tree_top() == to_replace.start().tree_top() {
+ let element = expr_replace.clone().syntax_element();
+ element.clone()..=element
+ } else {
+ to_replace.clone()
+ };
let editor = edit.make_editor(&place);
let make = editor.make();