]> git.lizzy.rs Git - rust.git/commitdiff
fix(assists): remove `item_const` which had default value when implement missing...
authorbvanjoi <bohan-zhang@foxmail.com>
Sat, 19 Nov 2022 11:38:53 +0000 (19:38 +0800)
committerbvanjoi <bohan-zhang@foxmail.com>
Sat, 19 Nov 2022 11:38:53 +0000 (19:38 +0800)
crates/ide-assists/src/handlers/add_missing_impl_members.rs
crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs
crates/ide-assists/src/utils.rs

index 722302f991e27190cb8f0b6ddbfc34c2f4789aa2..2b3793659cf7d4f9998549cc4c952698b2d6746c 100644 (file)
@@ -196,6 +196,7 @@ trait Foo {
     type Output;
 
     const CONST: usize = 42;
+    const CONST_2: i32;
 
     fn foo(&self);
     fn bar(&self);
@@ -213,6 +214,7 @@ trait Foo {
     type Output;
 
     const CONST: usize = 42;
+    const CONST_2: i32;
 
     fn foo(&self);
     fn bar(&self);
@@ -226,7 +228,7 @@ fn bar(&self) {}
 
     $0type Output;
 
-    const CONST: usize = 42;
+    const CONST_2: i32;
 
     fn foo(&self) {
         todo!()
@@ -658,6 +660,7 @@ trait Foo {
     type Output;
 
     const CONST: usize = 42;
+    const CONST_2: i32;
 
     fn valid(some: u32) -> bool { false }
     fn foo(some: u32) -> bool;
@@ -669,13 +672,16 @@ trait Foo {
     type Output;
 
     const CONST: usize = 42;
+    const CONST_2: i32;
 
     fn valid(some: u32) -> bool { false }
     fn foo(some: u32) -> bool;
 }
 struct S;
 impl Foo for S {
-    $0fn valid(some: u32) -> bool { false }
+    $0const CONST: usize = 42;
+
+    fn valid(some: u32) -> bool { false }
 }"#,
         )
     }
index f9ba289ee175fe76d554aeb28811b774b5fc34a1..6fa15b28e4efcfac2b42fba2fc938b9c920b69c8 100644 (file)
@@ -1019,8 +1019,6 @@ struct Foo {
 impl foo::Bar for Foo {
     $0type Qux;
 
-    const Baz: usize = 42;
-
     const Fez: usize;
 
     fn foo() {
index 307e67927056ba9a4eefce68b72bef495c63ac1a..68c31b4f8e92285586f14ebe4f3caf119170790b 100644 (file)
@@ -119,6 +119,10 @@ fn has_def_name(item: &ast::AssocItem) -> bool {
                 (default_methods, def.body()),
                 (DefaultMethods::Only, Some(_)) | (DefaultMethods::No, None)
             ),
+            ast::AssocItem::Const(def) => matches!(
+                (default_methods, def.body()),
+                (DefaultMethods::Only, Some(_)) | (DefaultMethods::No, None)
+            ),
             _ => default_methods == DefaultMethods::No,
         })
         .collect::<Vec<_>>()