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; } ```
A4-Tacks 4 months ago
parent adbff8b · commit d853dee
-rw-r--r--crates/ide-assists/src/handlers/unwrap_block.rs35
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,