From 88b485b1cf83ed21a71412b3aa83a6c90cf544a6 Mon Sep 17 00:00:00 2001 From: mompei Date: Tue, 24 Mar 2026 03:20:14 -0700 Subject: [PATCH] migrate convert_closure_to_fn to SyntaxEditor --- crates/ide-assists/src/handlers/convert_closure_to_fn.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 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 9f9ced98d73b..2eb4a03d0e77 100644 --- a/crates/ide-assists/src/handlers/convert_closure_to_fn.rs +++ b/crates/ide-assists/src/handlers/convert_closure_to_fn.rs @@ -14,7 +14,7 @@ use syntax::{ make, }, hacks::parse_expr_from_str, - ted, + syntax_editor::SyntaxEditor, }; use crate::assist_context::{AssistContext, Assists}; @@ -211,13 +211,15 @@ pub(crate) fn convert_closure_to_fn(acc: &mut Assists, ctx: &AssistContext<'_>) let (closure_type_params, closure_where_clause) = compute_closure_type_params(ctx, closure_mentioned_generic_params, &closure); + let mut editor = SyntaxEditor::new(body.syntax().clone()); for (old, new) in capture_usages_replacement_map { if old == body { body = new; } else { - ted::replace(old.syntax(), new.syntax()); + editor.replace(old.syntax(), new.syntax()); } } + body = ast::Expr::cast(editor.finish().new_root().clone()).unwrap_or(body); let body = if wrap_body_in_block { make::block_expr([], Some(body.reset_indent().indent(1.into())))