Unnamed repository; edit this file 'description' to name the repository.
Auto merge of #14621 - alibektas:make_impl_trait_fix, r=Veykril
Simple fix for make::impl_trait This is my first PR in this project. I made this PR because I needed this function to work properly for the main PR I am working on (#14386). This is a small amendment to what it was before. We still need to improve this in order for it to fully comply with its syntactic definition as stated [here](https://doc.rust-lang.org/reference/items/implementations.html).
bors 2023-04-22
parent 3a08713 · parent 4601331 · commit af3b6a0
-rw-r--r--crates/syntax/src/ast/make.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/syntax/src/ast/make.rs b/crates/syntax/src/ast/make.rs
index 5aebe4cd9f..c56ddb5160 100644
--- a/crates/syntax/src/ast/make.rs
+++ b/crates/syntax/src/ast/make.rs
@@ -184,8 +184,11 @@ pub fn impl_trait(
ty: ast::Path,
ty_params: Option<ast::GenericParamList>,
) -> ast::Impl {
- let ty_params = ty_params.map_or_else(String::new, |params| params.to_string());
- ast_from_text(&format!("impl{ty_params} {trait_} for {ty}{ty_params} {{}}"))
+ // TODO : If this function is now correct we can also change `impl_` accordingly`
+ let ty_params_str = ty_params.as_ref().map_or_else(String::new, |params| params.to_string());
+ let ty_genargs_str =
+ ty_params.map_or_else(String::new, |params| params.to_generic_args().to_string());
+ ast_from_text(&format!("impl{ty_params_str} {trait_} for {ty}{ty_genargs_str} {{}}"))
}
pub fn path_segment(name_ref: ast::NameRef) -> ast::PathSegment {