diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/convert_to_guarded_return.rs b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/convert_to_guarded_return.rs index 82213ae3217e..7bbe13bedd89 100644 --- a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/convert_to_guarded_return.rs +++ b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/convert_to_guarded_return.rs @@ -182,7 +182,7 @@ fn let_stmt_to_guarded_return( let cursor_in_range = let_token_range.cover(let_pattern_range).contains_range(ctx.selection_trimmed()); - if !cursor_in_range { + if !cursor_in_range || let_stmt.let_else().is_some() { return None; } @@ -911,6 +911,19 @@ fn main() { ); } + #[test] + fn ignore_let_else_branch() { + check_assist_not_applicable( + convert_to_guarded_return, + r#" +//- minicore: option +fn main() { + let$0 Some(x) = Some(2) else { return }; +} +"#, + ); + } + #[test] fn ignore_statements_after_if() { check_assist_not_applicable(