about summary refs log tree commit diff
diff options
context:
space:
mode:
authorroife <roifewu@gmail.com>2024-01-16 21:42:29 +0800
committerroife <roifewu@gmail.com>2024-01-16 21:42:29 +0800
commit7c94c29648bb6cbd7300a736862b8263ff04bc7f (patch)
tree1f09d34ff9a67e9d818b1988625d0999b034930e
parent0a8c7841e0023e45a5d001ad2222f554875a5476 (diff)
downloadrust-7c94c29648bb6cbd7300a736862b8263ff04bc7f.tar.gz
rust-7c94c29648bb6cbd7300a736862b8263ff04bc7f.zip
fix: make let_stmts inserted in inline_call correctly indented
-rw-r--r--crates/ide-assists/src/handlers/inline_call.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/ide-assists/src/handlers/inline_call.rs b/crates/ide-assists/src/handlers/inline_call.rs
index 2eb7089b7c3..7bbb9213411 100644
--- a/crates/ide-assists/src/handlers/inline_call.rs
+++ b/crates/ide-assists/src/handlers/inline_call.rs
@@ -484,12 +484,10 @@ fn inline(
             body = make::block_expr(let_stmts, Some(body.into())).clone_for_update();
         }
     } else if let Some(stmt_list) = body.stmt_list() {
-        ted::insert_all(
-            ted::Position::after(
-                stmt_list.l_curly_token().expect("L_CURLY for StatementList is missing."),
-            ),
-            let_stmts.into_iter().map(|stmt| stmt.syntax().clone().into()).collect(),
-        );
+        let position = stmt_list.l_curly_token().expect("L_CURLY for StatementList is missing.");
+        let_stmts.into_iter().rev().for_each(|let_stmt| {
+            ted::insert(ted::Position::after(position.clone()), let_stmt.syntax().clone());
+        });
     }
 
     let original_indentation = match node {