Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/syntax/src/ast/make.rs41
1 files changed, 18 insertions, 23 deletions
diff --git a/crates/syntax/src/ast/make.rs b/crates/syntax/src/ast/make.rs
index 719d92b87d..74cf9888e9 100644
--- a/crates/syntax/src/ast/make.rs
+++ b/crates/syntax/src/ast/make.rs
@@ -14,8 +14,6 @@ use stdx::{format_to, never};
use crate::{ast, utils::is_raw_identifier, AstNode, SourceFile, SyntaxKind, SyntaxToken};
-use super::WhereClause;
-
/// While the parent module defines basic atomic "constructors", the `ext`
/// module defines shortcuts for common things.
///
@@ -160,50 +158,47 @@ fn ty_from_text(text: &str) -> ast::Type {
ast_from_text(&format!("type _T = {text};"))
}
-/** Related goto [link](https://doc.rust-lang.org/reference/items/type-aliases.html)
- Type Alias syntax is
-
- ```
- TypeAlias :
- type IDENTIFIER GenericParams? ( : TypeParamBounds )? WhereClause? ( = Type WhereClause?)? ;
- ```
-
- FIXME : ident should be of type ast::Ident
-*/
+/// Related goto [link](https://doc.rust-lang.org/reference/items/type-aliases.html)
+/// Type Alias syntax is
+///
+/// ```
+/// TypeAlias :
+/// type IDENTIFIER GenericParams? ( : TypeParamBounds )? WhereClause? ( = Type WhereClause?)? ;
+/// ```
+///
+/// FIXME : ident should be of type ast::Ident
pub fn ty_alias(
- ident: String,
+ ident: &str,
generic_param_list: Option<ast::GenericParamList>,
type_param_bounds: Option<ast::TypeParam>,
- where_clause: Option<WhereClause>,
+ where_clause: Option<ast::WhereClause>,
assignment: Option<(ast::Type, Option<ast::WhereClause>)>,
) -> ast::TypeAlias {
let mut s = String::new();
- s.push_str(format!("type {}", ident.as_str()).as_str());
+ s.push_str(&format!("type {}", ident));
if let Some(list) = generic_param_list {
- s.push_str(list.to_string().as_str());
+ s.push_str(&list.to_string());
}
if let Some(list) = type_param_bounds {
- s.push_str(format!(" : {}", list.to_string().as_str()).as_str());
+ s.push_str(&format!(" : {}", &list.to_string()));
}
if let Some(cl) = where_clause {
- s.push_str(format!(" {}", cl.to_string().as_str()).as_str());
+ s.push_str(&format!(" {}", &cl.to_string()));
}
if let Some(exp) = assignment {
if let Some(cl) = exp.1 {
- s.push_str(
- format!("= {} {}", exp.0.to_string().as_str(), cl.to_string().as_str()).as_str(),
- );
+ s.push_str(&format!("= {} {}", &exp.0.to_string(), &cl.to_string()));
} else {
- s.push_str(format!("= {}", exp.0.to_string().as_str()).as_str());
+ s.push_str(&format!("= {}", &exp.0.to_string()));
}
}
s.push_str(";");
- ast_from_text(s.as_str())
+ ast_from_text(&s)
}
pub fn assoc_item_list() -> ast::AssocItemList {