diff options
| author | Shoyu Vanilla (Flint) <modulo641@gmail.com> | 2025-07-27 14:43:01 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-27 14:43:01 +0000 |
| commit | 2792799490b994ba3e7380fe9a151a6b95a1d7d1 (patch) | |
| tree | c4687afdf64aadd4d3e60a0cec9e0e76a5ee3a05 | |
| parent | dfc9bd02ae169689dd643c3e69a4fbd207768b5a (diff) | |
| parent | 317cd5683c665faef50a6ff31cbb03aaeebe6f16 (diff) | |
| download | rust-2792799490b994ba3e7380fe9a151a6b95a1d7d1.tar.gz rust-2792799490b994ba3e7380fe9a151a6b95a1d7d1.zip | |
Merge pull request #20305 from Hmikihiro/Migrate_part_of_utils
Migrate part of utils.rs to use SyntaxEditor
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-assists/src/utils.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/utils.rs b/src/tools/rust-analyzer/crates/ide-assists/src/utils.rs index 3457367645f..7fbb0ef4925 100644 --- a/src/tools/rust-analyzer/crates/ide-assists/src/utils.rs +++ b/src/tools/rust-analyzer/crates/ide-assists/src/utils.rs @@ -27,6 +27,7 @@ use syntax::{ make, syntax_factory::SyntaxFactory, }, + syntax_editor::SyntaxEditor, ted, }; @@ -329,7 +330,7 @@ fn invert_special_case(make: &SyntaxFactory, expr: &ast::Expr) -> Option<ast::Ex fn invert_special_case_legacy(expr: &ast::Expr) -> Option<ast::Expr> { match expr { ast::Expr::BinExpr(bin) => { - let bin = bin.clone_for_update(); + let bin = bin.clone_subtree(); let op_token = bin.op_token()?; let rev_token = match op_token.kind() { T![==] => T![!=], @@ -345,8 +346,9 @@ fn invert_special_case_legacy(expr: &ast::Expr) -> Option<ast::Expr> { ); } }; - ted::replace(op_token, make::token(rev_token)); - Some(bin.into()) + let mut bin_editor = SyntaxEditor::new(bin.syntax().clone()); + bin_editor.replace(op_token, make::token(rev_token)); + ast::Expr::cast(bin_editor.finish().new_root().clone()) } ast::Expr::MethodCallExpr(mce) => { let receiver = mce.receiver()?; |
