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).
| -rw-r--r-- | crates/syntax/src/ast/make.rs | 7 |
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 { |