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.rs21
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()
}