Skip to content

Commit 721e790

Browse files
committed
include for in convert to guarded return assist
1 parent 9d8889c commit 721e790

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

crates/ide-assists/src/handlers/convert_to_guarded_return.rs

+28-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use syntax::{
88
make,
99
},
1010
ted, AstNode,
11-
SyntaxKind::{FN, LOOP_EXPR, WHILE_EXPR, WHITESPACE},
11+
SyntaxKind::{FN, FOR_EXPR, LOOP_EXPR, WHILE_EXPR, WHITESPACE},
1212
T,
1313
};
1414

@@ -82,7 +82,7 @@ pub(crate) fn convert_to_guarded_return(acc: &mut Assists, ctx: &AssistContext<'
8282
let parent_container = parent_block.syntax().parent()?;
8383

8484
let early_expression: ast::Expr = match parent_container.kind() {
85-
WHILE_EXPR | LOOP_EXPR => make::expr_continue(None),
85+
WHILE_EXPR | LOOP_EXPR | FOR_EXPR => make::expr_continue(None),
8686
FN => make::expr_return(None),
8787
_ => return None,
8888
};
@@ -426,6 +426,32 @@ fn main() {
426426
);
427427
}
428428

429+
#[test]
430+
fn convert_let_inside_for() {
431+
check_assist(
432+
convert_to_guarded_return,
433+
r#"
434+
fn main() {
435+
for n in ns {
436+
if$0 let Some(n) = n {
437+
foo(n);
438+
bar();
439+
}
440+
}
441+
}
442+
"#,
443+
r#"
444+
fn main() {
445+
for n in ns {
446+
let Some(n) = n else { continue };
447+
foo(n);
448+
bar();
449+
}
450+
}
451+
"#,
452+
);
453+
}
454+
429455
#[test]
430456
fn convert_arbitrary_if_let_patterns() {
431457
check_assist(

0 commit comments

Comments
 (0)