Unnamed repository; edit this file 'description' to name the repository.
Add applicable on let-else branch for unwrap_block
Example
---
```rust
fn main() {
let Some(2) = None else {$0
return;
};
}
```
**Before this PR**
Assist not applicable
**After this PR**
```rust
fn main() {
return;
}
```
| -rw-r--r-- | crates/ide-assists/src/handlers/unwrap_block.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/unwrap_block.rs b/crates/ide-assists/src/handlers/unwrap_block.rs index e4f5e3523b..e029d7884f 100644 --- a/crates/ide-assists/src/handlers/unwrap_block.rs +++ b/crates/ide-assists/src/handlers/unwrap_block.rs @@ -45,6 +45,7 @@ pub(crate) fn unwrap_block(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option ast::LoopExpr(it) => it.syntax().clone(), ast::WhileExpr(it) => it.syntax().clone(), ast::MatchArm(it) => it.parent_match().syntax().clone(), + ast::LetElse(it) => it.syntax().parent()?, ast::LetStmt(it) => { replacement = wrap_let(&it, replacement); prefer_container = Some(it.syntax().clone()); @@ -557,6 +558,40 @@ fn main() { } #[test] + fn simple_let_else() { + check_assist( + unwrap_block, + r#" +fn main() { + let Some(2) = None else {$0 + return; + }; +} +"#, + r#" +fn main() { + return; +} +"#, + ); + check_assist( + unwrap_block, + r#" +fn main() { + let Some(2) = None else {$0 + return + }; +} +"#, + r#" +fn main() { + return +} +"#, + ); + } + + #[test] fn unwrap_match_arm() { check_assist( unwrap_block, |