diff options
Diffstat (limited to 'crates/ide_assists/src')
-rw-r--r-- | crates/ide_assists/src/handlers/pull_assignment_up.rs | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/crates/ide_assists/src/handlers/pull_assignment_up.rs b/crates/ide_assists/src/handlers/pull_assignment_up.rs index 602c3813e..28d14b9c3 100644 --- a/crates/ide_assists/src/handlers/pull_assignment_up.rs +++ b/crates/ide_assists/src/handlers/pull_assignment_up.rs | |||
@@ -95,7 +95,6 @@ impl<'a> AssignmentsCollector<'a> { | |||
95 | for arm in match_expr.match_arm_list()?.arms() { | 95 | for arm in match_expr.match_arm_list()?.arms() { |
96 | match arm.expr()? { | 96 | match arm.expr()? { |
97 | ast::Expr::BlockExpr(block) => self.collect_block(&block)?, | 97 | ast::Expr::BlockExpr(block) => self.collect_block(&block)?, |
98 | // TODO: Handle this while we are at it? | ||
99 | _ => return None, | 98 | _ => return None, |
100 | } | 99 | } |
101 | } | 100 | } |
@@ -242,6 +241,38 @@ fn foo() { | |||
242 | } | 241 | } |
243 | 242 | ||
244 | #[test] | 243 | #[test] |
244 | #[ignore] | ||
245 | fn test_pull_assignment_up_assignment_expressions() { | ||
246 | check_assist( | ||
247 | pull_assignment_up, | ||
248 | r#" | ||
249 | fn foo() { | ||
250 | let mut a = 1; | ||
251 | |||
252 | match 1 { | ||
253 | 1 => { $0a = 2; }, | ||
254 | 2 => a = 3, | ||
255 | 3 => { | ||
256 | a = 4 | ||
257 | } | ||
258 | } | ||
259 | }"#, | ||
260 | r#" | ||
261 | fn foo() { | ||
262 | let mut a = 1; | ||
263 | |||
264 | a = match 1 { | ||
265 | 1 => { 2 }, | ||
266 | 2 => 3, | ||
267 | 3 => { | ||
268 | 4 | ||
269 | } | ||
270 | }; | ||
271 | }"#, | ||
272 | ); | ||
273 | } | ||
274 | |||
275 | #[test] | ||
245 | fn test_pull_assignment_up_not_last_not_applicable() { | 276 | fn test_pull_assignment_up_not_last_not_applicable() { |
246 | check_assist_not_applicable( | 277 | check_assist_not_applicable( |
247 | pull_assignment_up, | 278 | pull_assignment_up, |