Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/ast/syntax_factory/constructors.rs')
| -rw-r--r-- | crates/syntax/src/ast/syntax_factory/constructors.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/crates/syntax/src/ast/syntax_factory/constructors.rs b/crates/syntax/src/ast/syntax_factory/constructors.rs index 159b191805..e4aa1680ae 100644 --- a/crates/syntax/src/ast/syntax_factory/constructors.rs +++ b/crates/syntax/src/ast/syntax_factory/constructors.rs @@ -97,6 +97,19 @@ impl SyntaxFactory { make::struct_(visibility, strukt_name, generic_param_list, field_list).clone_for_update() } + pub fn enum_( + &self, + attrs: impl IntoIterator<Item = ast::Attr>, + visibility: Option<ast::Visibility>, + enum_name: ast::Name, + generic_param_list: Option<ast::GenericParamList>, + where_clause: Option<ast::WhereClause>, + variant_list: ast::VariantList, + ) -> ast::Enum { + make::enum_(attrs, visibility, enum_name, generic_param_list, where_clause, variant_list) + .clone_for_update() + } + pub fn expr_field(&self, receiver: ast::Expr, field: &str) -> ast::FieldExpr { let ast::Expr::FieldExpr(ast) = make::expr_field(receiver.clone(), field).clone_for_update() @@ -295,6 +308,14 @@ impl SyntaxFactory { make::generic_ty_path_segment(name_ref, generic_args).clone_for_update() } + pub fn tail_only_block_expr(&self, tail_expr: ast::Expr) -> ast::BlockExpr { + make::tail_only_block_expr(tail_expr) + } + + pub fn expr_bin_op(&self, lhs: ast::Expr, op: ast::BinaryOp, rhs: ast::Expr) -> ast::Expr { + make::expr_bin_op(lhs, op, rhs) + } + pub fn ty_placeholder(&self) -> ast::Type { make::ty_placeholder().clone_for_update() } |