diff options
| author | Shoyu Vanilla <modulo641@gmail.com> | 2024-11-25 01:01:50 +0900 |
|---|---|---|
| committer | Shoyu Vanilla <modulo641@gmail.com> | 2024-11-26 01:47:15 +0900 |
| commit | f091ec669e3f46bbf62048cb2a4b42ea5d9536ad (patch) | |
| tree | 6c833d23d552ab3bae52df54f2fc70684ddd3160 /src/tools/rust-analyzer/crates/syntax | |
| parent | 309c671083006dcc5b16dd023f90cb91d4230002 (diff) | |
| download | rust-f091ec669e3f46bbf62048cb2a4b42ea5d9536ad.tar.gz rust-f091ec669e3f46bbf62048cb2a4b42ea5d9536ad.zip | |
Migrate `add_turbo_fish` to `SyntaxEditor`
Diffstat (limited to 'src/tools/rust-analyzer/crates/syntax')
| -rw-r--r-- | src/tools/rust-analyzer/crates/syntax/src/ast/syntax_factory/constructors.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/syntax/src/ast/syntax_factory/constructors.rs b/src/tools/rust-analyzer/crates/syntax/src/ast/syntax_factory/constructors.rs index 9f88add0f78..6e90b2ba47f 100644 --- a/src/tools/rust-analyzer/crates/syntax/src/ast/syntax_factory/constructors.rs +++ b/src/tools/rust-analyzer/crates/syntax/src/ast/syntax_factory/constructors.rs @@ -107,4 +107,22 @@ impl SyntaxFactory { ast } + + pub fn turbofish_generic_arg_list( + &self, + args: impl IntoIterator<Item = ast::GenericArg> + Clone, + ) -> ast::GenericArgList { + let ast = make::turbofish_generic_arg_list(args.clone()).clone_for_update(); + + if let Some(mut mapping) = self.mappings() { + let mut builder = SyntaxMappingBuilder::new(ast.syntax().clone()); + builder.map_children( + args.into_iter().map(|arg| arg.syntax().clone()), + ast.generic_args().map(|arg| arg.syntax().clone()), + ); + builder.finish(&mut mapping); + } + + ast + } } |
