From 5a2ef8d0cad71cf51da548b80bcfb4ba615061d1 Mon Sep 17 00:00:00 2001 From: ivan770 Date: Sat, 27 Mar 2021 11:37:39 +0200 Subject: Added support for const generics in impl generation --- crates/ide_assists/src/utils.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'crates/ide_assists/src/utils.rs') diff --git a/crates/ide_assists/src/utils.rs b/crates/ide_assists/src/utils.rs index 62f959082..728d174db 100644 --- a/crates/ide_assists/src/utils.rs +++ b/crates/ide_assists/src/utils.rs @@ -434,7 +434,8 @@ fn generate_impl_text_inner(adt: &ast::Adt, trait_text: Option<&str>, code: &str } buf }); - let generics = lifetimes.chain(type_params).format(", "); + let const_params = generic_params.const_params().map(|t| t.syntax().to_string()); + let generics = lifetimes.chain(type_params).chain(const_params).format(", "); format_to!(buf, "<{}>", generics); } buf.push(' '); @@ -452,7 +453,11 @@ fn generate_impl_text_inner(adt: &ast::Adt, trait_text: Option<&str>, code: &str .type_params() .filter_map(|it| it.name()) .map(|it| SmolStr::from(it.text())); - format_to!(buf, "<{}>", lifetime_params.chain(type_params).format(", ")) + let const_params = generic_params + .const_params() + .filter_map(|it| it.name()) + .map(|it| SmolStr::from(it.text())); + format_to!(buf, "<{}>", lifetime_params.chain(type_params).chain(const_params).format(", ")) } match adt.where_clause() { -- cgit v1.2.3