From d0986cd96b8765f252fe3d9d140cc313298d919b Mon Sep 17 00:00:00 2001 From: Wang Ruochen Date: Tue, 21 Dec 2021 16:48:02 -0800 Subject: [PATCH] Move variables into the closure --- crates/ide_assists/src/handlers/move_guard.rs | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/crates/ide_assists/src/handlers/move_guard.rs b/crates/ide_assists/src/handlers/move_guard.rs index 58c37471e63e..c427ee88a243 100644 --- a/crates/ide_assists/src/handlers/move_guard.rs +++ b/crates/ide_assists/src/handlers/move_guard.rs @@ -116,26 +116,27 @@ pub(crate) fn move_arm_cond_to_match_guard(acc: &mut Assists, ctx: &AssistContex } })?; let replace_node = replace_node.unwrap_or_else(|| if_expr.syntax().clone()); - // Dedent if if_expr is in a BlockExpr - let dedent = if replace_node != *if_expr.syntax() { - cov_mark::hit!(move_guard_ifelse_in_block); - 1 - } else { - cov_mark::hit!(move_guard_ifelse_else_block); - 0 - }; - + let needs_dedent = replace_node != *if_expr.syntax(); let (conds_blocks, tail) = parse_if_chain(if_expr)?; - let then_arm_end = match_arm.syntax().text_range().end(); - let indent_level = match_arm.indent_level(); - let spaces = " ".repeat(indent_level.0 as _); acc.add( AssistId("move_arm_cond_to_match_guard", AssistKind::RefactorRewrite), "Move condition to match guard", replace_node.text_range(), |edit| { edit.delete(match_arm.syntax().text_range()); + // Dedent if if_expr is in a BlockExpr + let dedent = if needs_dedent { + cov_mark::hit!(move_guard_ifelse_in_block); + 1 + } else { + cov_mark::hit!(move_guard_ifelse_else_block); + 0 + }; + let then_arm_end = match_arm.syntax().text_range().end(); + let indent_level = match_arm.indent_level(); + let spaces = " ".repeat(indent_level.0 as _); + let mut first = true; for (cond, block) in conds_blocks { if !first {