diff options
Diffstat (limited to 'crates/ra_syntax')
-rw-r--r-- | crates/ra_syntax/src/ast/make.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs index 192c610f1..42116afbb 100644 --- a/crates/ra_syntax/src/ast/make.rs +++ b/crates/ra_syntax/src/ast/make.rs | |||
@@ -64,6 +64,19 @@ pub fn use_item(use_tree: ast::UseTree) -> ast::UseItem { | |||
64 | ast_from_text(&format!("use {};", use_tree)) | 64 | ast_from_text(&format!("use {};", use_tree)) |
65 | } | 65 | } |
66 | 66 | ||
67 | pub fn type_alias_def( | ||
68 | name: ast::Name, | ||
69 | bounds: Option<ast::TypeBoundList>, | ||
70 | ty: Option<ast::TypeRef>, | ||
71 | ) -> ast::TypeAliasDef { | ||
72 | match (bounds, ty) { | ||
73 | (None, None) => ast_from_text(&format!("type {};", name)), | ||
74 | (None, Some(ty)) => ast_from_text(&format!("type {} = {};", name, ty)), | ||
75 | (Some(bounds), None) => ast_from_text(&format!("type {}: {};", name, bounds)), | ||
76 | (Some(bounds), Some(ty)) => ast_from_text(&format!("type {}: {} = {};", name, bounds, ty)), | ||
77 | } | ||
78 | } | ||
79 | |||
67 | pub fn record_field(name: ast::NameRef, expr: Option<ast::Expr>) -> ast::RecordField { | 80 | pub fn record_field(name: ast::NameRef, expr: Option<ast::Expr>) -> ast::RecordField { |
68 | return match expr { | 81 | return match expr { |
69 | Some(expr) => from_text(&format!("{}: {}", name, expr)), | 82 | Some(expr) => from_text(&format!("{}: {}", name, expr)), |