Skip to content

Commit d0986cd

Browse files
committed
Move variables into the closure
1 parent 71676ae commit d0986cd

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

crates/ide_assists/src/handlers/move_guard.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,26 +116,27 @@ pub(crate) fn move_arm_cond_to_match_guard(acc: &mut Assists, ctx: &AssistContex
116116
}
117117
})?;
118118
let replace_node = replace_node.unwrap_or_else(|| if_expr.syntax().clone());
119-
// Dedent if if_expr is in a BlockExpr
120-
let dedent = if replace_node != *if_expr.syntax() {
121-
cov_mark::hit!(move_guard_ifelse_in_block);
122-
1
123-
} else {
124-
cov_mark::hit!(move_guard_ifelse_else_block);
125-
0
126-
};
127-
119+
let needs_dedent = replace_node != *if_expr.syntax();
128120
let (conds_blocks, tail) = parse_if_chain(if_expr)?;
129121

130-
let then_arm_end = match_arm.syntax().text_range().end();
131-
let indent_level = match_arm.indent_level();
132-
let spaces = " ".repeat(indent_level.0 as _);
133122
acc.add(
134123
AssistId("move_arm_cond_to_match_guard", AssistKind::RefactorRewrite),
135124
"Move condition to match guard",
136125
replace_node.text_range(),
137126
|edit| {
138127
edit.delete(match_arm.syntax().text_range());
128+
// Dedent if if_expr is in a BlockExpr
129+
let dedent = if needs_dedent {
130+
cov_mark::hit!(move_guard_ifelse_in_block);
131+
1
132+
} else {
133+
cov_mark::hit!(move_guard_ifelse_else_block);
134+
0
135+
};
136+
let then_arm_end = match_arm.syntax().text_range().end();
137+
let indent_level = match_arm.indent_level();
138+
let spaces = " ".repeat(indent_level.0 as _);
139+
139140
let mut first = true;
140141
for (cond, block) in conds_blocks {
141142
if !first {

0 commit comments

Comments
 (0)