diff options
Diffstat (limited to 'crates/ra_assists/src')
-rw-r--r-- | crates/ra_assists/src/assists/move_bounds.rs | 3 | ||||
-rw-r--r-- | crates/ra_assists/src/ast_editor.rs | 15 |
2 files changed, 1 insertions, 17 deletions
diff --git a/crates/ra_assists/src/assists/move_bounds.rs b/crates/ra_assists/src/assists/move_bounds.rs index fd4bdc55c..1d27832a3 100644 --- a/crates/ra_assists/src/assists/move_bounds.rs +++ b/crates/ra_assists/src/assists/move_bounds.rs | |||
@@ -39,8 +39,7 @@ pub(crate) fn move_bounds_to_where_clause(mut ctx: AssistCtx<impl HirDatabase>) | |||
39 | .type_params() | 39 | .type_params() |
40 | .filter(|it| it.type_bound_list().is_some()) | 40 | .filter(|it| it.type_bound_list().is_some()) |
41 | .map(|type_param| { | 41 | .map(|type_param| { |
42 | let without_bounds = | 42 | let without_bounds = type_param.remove_bounds(); |
43 | AstEditor::new(type_param.clone()).remove_bounds().ast().clone(); | ||
44 | (type_param, without_bounds) | 43 | (type_param, without_bounds) |
45 | }); | 44 | }); |
46 | 45 | ||
diff --git a/crates/ra_assists/src/ast_editor.rs b/crates/ra_assists/src/ast_editor.rs index 54849b7b0..69abf28a1 100644 --- a/crates/ra_assists/src/ast_editor.rs +++ b/crates/ra_assists/src/ast_editor.rs | |||
@@ -51,18 +51,3 @@ impl<N: AstNode> AstEditor<N> { | |||
51 | N::cast(new_syntax).unwrap() | 51 | N::cast(new_syntax).unwrap() |
52 | } | 52 | } |
53 | } | 53 | } |
54 | |||
55 | impl AstEditor<ast::TypeParam> { | ||
56 | pub fn remove_bounds(&mut self) -> &mut Self { | ||
57 | let colon = match self.ast.colon_token() { | ||
58 | Some(it) => it, | ||
59 | None => return self, | ||
60 | }; | ||
61 | let end = match self.ast.type_bound_list() { | ||
62 | Some(it) => it.syntax().clone().into(), | ||
63 | None => colon.clone().into(), | ||
64 | }; | ||
65 | self.ast = self.replace_children(RangeInclusive::new(colon.into(), end), iter::empty()); | ||
66 | self | ||
67 | } | ||
68 | } | ||