diff options
Diffstat (limited to 'crates/ra_assists/src/add_impl.rs')
-rw-r--r-- | crates/ra_assists/src/add_impl.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/crates/ra_assists/src/add_impl.rs b/crates/ra_assists/src/add_impl.rs index f2360bc89..32fc074a6 100644 --- a/crates/ra_assists/src/add_impl.rs +++ b/crates/ra_assists/src/add_impl.rs | |||
@@ -11,6 +11,7 @@ pub(crate) fn add_impl(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | |||
11 | let nominal = ctx.node_at_offset::<ast::NominalDef>()?; | 11 | let nominal = ctx.node_at_offset::<ast::NominalDef>()?; |
12 | let name = nominal.name()?; | 12 | let name = nominal.name()?; |
13 | ctx.build("add impl", |edit| { | 13 | ctx.build("add impl", |edit| { |
14 | edit.target(nominal.syntax().range()); | ||
14 | let type_params = nominal.type_param_list(); | 15 | let type_params = nominal.type_param_list(); |
15 | let start_offset = nominal.syntax().range().end(); | 16 | let start_offset = nominal.syntax().range().end(); |
16 | let mut buf = String::new(); | 17 | let mut buf = String::new(); |
@@ -37,7 +38,7 @@ pub(crate) fn add_impl(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | |||
37 | #[cfg(test)] | 38 | #[cfg(test)] |
38 | mod tests { | 39 | mod tests { |
39 | use super::*; | 40 | use super::*; |
40 | use crate::helpers::check_assist; | 41 | use crate::helpers::{check_assist, check_assist_target}; |
41 | 42 | ||
42 | #[test] | 43 | #[test] |
43 | fn test_add_impl() { | 44 | fn test_add_impl() { |
@@ -54,4 +55,18 @@ mod tests { | |||
54 | ); | 55 | ); |
55 | } | 56 | } |
56 | 57 | ||
58 | #[test] | ||
59 | fn add_impl_target() { | ||
60 | check_assist_target( | ||
61 | add_impl, | ||
62 | " | ||
63 | struct SomeThingIrrelevant; | ||
64 | /// Has a lifetime parameter | ||
65 | struct Foo<'a, T: Foo<'a>> {<|>} | ||
66 | struct EvenMoreIrrelevant; | ||
67 | ", | ||
68 | "/// Has a lifetime parameter | ||
69 | struct Foo<'a, T: Foo<'a>> {}", | ||
70 | ); | ||
71 | } | ||
57 | } | 72 | } |