diff options
| author | Giga Bowser <45986823+Giga-Bowser@users.noreply.github.com> | 2024-12-08 17:14:22 -0500 |
|---|---|---|
| committer | Giga Bowser <45986823+Giga-Bowser@users.noreply.github.com> | 2024-12-11 09:52:03 -0500 |
| commit | 3dcda33851225e3f7bdc7668285dd4b9316a2ad3 (patch) | |
| tree | a9aebfaad4abd0ba634710d05544a09682b57e34 | |
| parent | a18e38e6e23255e095dd3be763e7fa29bc5d4cbe (diff) | |
| download | rust-3dcda33851225e3f7bdc7668285dd4b9316a2ad3.tar.gz rust-3dcda33851225e3f7bdc7668285dd4b9316a2ad3.zip | |
minor: Add `item_const` constructor to `SyntaxFactory`
| -rw-r--r-- | src/tools/rust-analyzer/crates/syntax/src/ast/syntax_factory/constructors.rs | 27 |
1 files changed, 27 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 e86c291f76c..d2ab30fb47d 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 @@ -188,6 +188,33 @@ impl SyntaxFactory { ast } + pub fn item_const( + &self, + visibility: Option<ast::Visibility>, + name: ast::Name, + ty: ast::Type, + expr: ast::Expr, + ) -> ast::Const { + let ast = make::item_const(visibility.clone(), name.clone(), ty.clone(), expr.clone()) + .clone_for_update(); + + if let Some(mut mapping) = self.mappings() { + let mut builder = SyntaxMappingBuilder::new(ast.syntax().clone()); + if let Some(visibility) = visibility { + builder.map_node( + visibility.syntax().clone(), + ast.visibility().unwrap().syntax().clone(), + ); + } + builder.map_node(name.syntax().clone(), ast.name().unwrap().syntax().clone()); + builder.map_node(ty.syntax().clone(), ast.ty().unwrap().syntax().clone()); + builder.map_node(expr.syntax().clone(), ast.body().unwrap().syntax().clone()); + builder.finish(&mut mapping); + } + + ast + } + pub fn turbofish_generic_arg_list( &self, args: impl IntoIterator<Item = ast::GenericArg> + Clone, |
