diff options
Diffstat (limited to 'crates/ra_assists/src/handlers/add_from_impl_for_enum.rs')
-rw-r--r-- | crates/ra_assists/src/handlers/add_from_impl_for_enum.rs | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs b/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs index 6a49b7dbd..6a675e812 100644 --- a/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs +++ b/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs | |||
@@ -1,7 +1,6 @@ | |||
1 | use ra_ide_db::RootDatabase; | 1 | use ra_ide_db::RootDatabase; |
2 | use ra_syntax::ast::{self, AstNode, NameOwner}; | 2 | use ra_syntax::ast::{self, AstNode, NameOwner}; |
3 | use stdx::format_to; | 3 | use test_utils::mark; |
4 | use test_utils::tested_by; | ||
5 | 4 | ||
6 | use crate::{utils::FamousDefs, AssistContext, AssistId, Assists}; | 5 | use crate::{utils::FamousDefs, AssistContext, AssistId, Assists}; |
7 | 6 | ||
@@ -35,12 +34,12 @@ pub(crate) fn add_from_impl_for_enum(acc: &mut Assists, ctx: &AssistContext) -> | |||
35 | } | 34 | } |
36 | let field_type = field_list.fields().next()?.type_ref()?; | 35 | let field_type = field_list.fields().next()?.type_ref()?; |
37 | let path = match field_type { | 36 | let path = match field_type { |
38 | ast::TypeRef::PathType(p) => p, | 37 | ast::TypeRef::PathType(it) => it, |
39 | _ => return None, | 38 | _ => return None, |
40 | }; | 39 | }; |
41 | 40 | ||
42 | if existing_from_impl(&ctx.sema, &variant).is_some() { | 41 | if existing_from_impl(&ctx.sema, &variant).is_some() { |
43 | tested_by!(test_add_from_impl_already_exists); | 42 | mark::hit!(test_add_from_impl_already_exists); |
44 | return None; | 43 | return None; |
45 | } | 44 | } |
46 | 45 | ||
@@ -51,9 +50,7 @@ pub(crate) fn add_from_impl_for_enum(acc: &mut Assists, ctx: &AssistContext) -> | |||
51 | target, | 50 | target, |
52 | |edit| { | 51 | |edit| { |
53 | let start_offset = variant.parent_enum().syntax().text_range().end(); | 52 | let start_offset = variant.parent_enum().syntax().text_range().end(); |
54 | let mut buf = String::new(); | 53 | let buf = format!( |
55 | format_to!( | ||
56 | buf, | ||
57 | r#" | 54 | r#" |
58 | 55 | ||
59 | impl From<{0}> for {1} {{ | 56 | impl From<{0}> for {1} {{ |
@@ -93,7 +90,7 @@ fn existing_from_impl( | |||
93 | 90 | ||
94 | #[cfg(test)] | 91 | #[cfg(test)] |
95 | mod tests { | 92 | mod tests { |
96 | use test_utils::covers; | 93 | use test_utils::mark; |
97 | 94 | ||
98 | use crate::tests::{check_assist, check_assist_not_applicable}; | 95 | use crate::tests::{check_assist, check_assist_not_applicable}; |
99 | 96 | ||
@@ -104,7 +101,7 @@ mod tests { | |||
104 | check_assist( | 101 | check_assist( |
105 | add_from_impl_for_enum, | 102 | add_from_impl_for_enum, |
106 | "enum A { <|>One(u32) }", | 103 | "enum A { <|>One(u32) }", |
107 | r#"enum A { <|>One(u32) } | 104 | r#"enum A { One(u32) } |
108 | 105 | ||
109 | impl From<u32> for A { | 106 | impl From<u32> for A { |
110 | fn from(v: u32) -> Self { | 107 | fn from(v: u32) -> Self { |
@@ -119,7 +116,7 @@ impl From<u32> for A { | |||
119 | check_assist( | 116 | check_assist( |
120 | add_from_impl_for_enum, | 117 | add_from_impl_for_enum, |
121 | r#"enum A { <|>One(foo::bar::baz::Boo) }"#, | 118 | r#"enum A { <|>One(foo::bar::baz::Boo) }"#, |
122 | r#"enum A { <|>One(foo::bar::baz::Boo) } | 119 | r#"enum A { One(foo::bar::baz::Boo) } |
123 | 120 | ||
124 | impl From<foo::bar::baz::Boo> for A { | 121 | impl From<foo::bar::baz::Boo> for A { |
125 | fn from(v: foo::bar::baz::Boo) -> Self { | 122 | fn from(v: foo::bar::baz::Boo) -> Self { |
@@ -152,7 +149,7 @@ impl From<foo::bar::baz::Boo> for A { | |||
152 | 149 | ||
153 | #[test] | 150 | #[test] |
154 | fn test_add_from_impl_already_exists() { | 151 | fn test_add_from_impl_already_exists() { |
155 | covers!(test_add_from_impl_already_exists); | 152 | mark::check!(test_add_from_impl_already_exists); |
156 | check_not_applicable( | 153 | check_not_applicable( |
157 | r#" | 154 | r#" |
158 | enum A { <|>One(u32), } | 155 | enum A { <|>One(u32), } |
@@ -181,7 +178,7 @@ impl From<String> for A { | |||
181 | pub trait From<T> { | 178 | pub trait From<T> { |
182 | fn from(T) -> Self; | 179 | fn from(T) -> Self; |
183 | }"#, | 180 | }"#, |
184 | r#"enum A { <|>One(u32), Two(String), } | 181 | r#"enum A { One(u32), Two(String), } |
185 | 182 | ||
186 | impl From<u32> for A { | 183 | impl From<u32> for A { |
187 | fn from(v: u32) -> Self { | 184 | fn from(v: u32) -> Self { |