]> git.lizzy.rs Git - rust.git/blobdiff - crates/ide_assists/src/handlers/generate_impl.rs
Merge #11481
[rust.git] / crates / ide_assists / src / handlers / generate_impl.rs
index a8e3c4fc24fd3f42ac14d5ba6af75f88c4be133d..58fea103f854af724d72cb1d66c065a90ebc672c 100644 (file)
@@ -1,4 +1,4 @@
-use syntax::ast::{self, AstNode, NameOwner};
+use syntax::ast::{self, AstNode, HasName};
 
 use crate::{utils::generate_impl_text, AssistContext, AssistId, AssistKind, Assists};
 
@@ -69,6 +69,17 @@ fn test_add_impl() {
             "struct Foo<'a, T: Foo<'a>> {$0}",
             "struct Foo<'a, T: Foo<'a>> {}\n\nimpl<'a, T: Foo<'a>> Foo<'a, T> {\n    $0\n}",
         );
+        check_assist(
+            generate_impl,
+            r#"
+            struct MyOwnArray<T, const S: usize> {}$0"#,
+            r#"
+            struct MyOwnArray<T, const S: usize> {}
+
+            impl<T, const S: usize> MyOwnArray<T, S> {
+                $0
+            }"#,
+        );
         check_assist(
             generate_impl,
             r#"
@@ -114,11 +125,11 @@ impl<T> Defaulted<T> {
         check_assist(
             generate_impl,
             r#"
-            struct Defaulted<'a, 'b: 'a, T: Debug + Clone + 'a + 'b = String> {}$0"#,
+            struct Defaulted<'a, 'b: 'a, T: Debug + Clone + 'a + 'b = String, const S: usize> {}$0"#,
             r#"
-            struct Defaulted<'a, 'b: 'a, T: Debug + Clone + 'a + 'b = String> {}
+            struct Defaulted<'a, 'b: 'a, T: Debug + Clone + 'a + 'b = String, const S: usize> {}
 
-            impl<'a, 'b: 'a, T: Debug + Clone + 'a + 'b> Defaulted<'a, 'b, T> {
+            impl<'a, 'b: 'a, T: Debug + Clone + 'a + 'b, const S: usize> Defaulted<'a, 'b, T, S> {
                 $0
             }"#,
         );