Unnamed repository; edit this file 'description' to name the repository.
Fix indent for convert_closure_to_fn
Example --- ```rust fn foo() { { let closure = |$0| match () { () => {}, }; closure(); } } ``` **Before this PR**: ```rust fn foo() { { fn closure() { match () { () => {}, } } closure(); } } ``` **After this PR**: ```rust fn foo() { { fn closure() { match () { () => {}, } } closure(); } } ```
A4-Tacks 9 months ago
parent 1f4e5e8 · commit 68f9f24
-rw-r--r--crates/ide-assists/src/handlers/convert_closure_to_fn.rs28
1 files changed, 27 insertions, 1 deletions
diff --git a/crates/ide-assists/src/handlers/convert_closure_to_fn.rs b/crates/ide-assists/src/handlers/convert_closure_to_fn.rs
index 5f526ec899..03f4e4749d 100644
--- a/crates/ide-assists/src/handlers/convert_closure_to_fn.rs
+++ b/crates/ide-assists/src/handlers/convert_closure_to_fn.rs
@@ -220,7 +220,7 @@ pub(crate) fn convert_closure_to_fn(acc: &mut Assists, ctx: &AssistContext<'_>)
}
let body = if wrap_body_in_block {
- make::block_expr([], Some(body))
+ make::block_expr([], Some(body.reset_indent().indent(1.into())))
} else {
ast::BlockExpr::cast(body.syntax().clone()).unwrap()
};
@@ -971,6 +971,32 @@ fn foo() {
}
"#,
);
+ check_assist(
+ convert_closure_to_fn,
+ r#"
+//- minicore: copy
+fn foo() {
+ {
+ let closure = |$0| match () {
+ () => {},
+ };
+ closure();
+ }
+}
+"#,
+ r#"
+fn foo() {
+ {
+ fn closure() {
+ match () {
+ () => {},
+ }
+ }
+ closure();
+ }
+}
+"#,
+ );
}
#[test]