aboutsummaryrefslogtreecommitdiff
path: root/docs/user/assists.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/user/assists.md')
-rw-r--r--docs/user/assists.md93
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/user/assists.md b/docs/user/assists.md
index ee1cfa142..34a95696c 100644
--- a/docs/user/assists.md
+++ b/docs/user/assists.md
@@ -265,3 +265,96 @@ fn main() {
265 var_name * 4; 265 var_name * 4;
266} 266}
267``` 267```
268
269## `merge_match_arms`
270
271Merges identical match arms.
272
273```rust
274// BEFORE
275enum Action { Move { distance: u32 }, Stop }
276
277fn handle(action: Action) {
278 match action {
279 ┃Action::Move(..) => foo(),
280 Action::Stop => foo(),
281 }
282}
283
284// AFTER
285enum Action { Move { distance: u32 }, Stop }
286
287fn handle(action: Action) {
288 match action {
289 Action::Move(..) | Action::Stop => foo(),
290 }
291}
292```
293
294## `move_arm_cond_to_match_guard`
295
296Moves if expression from match arm body into a guard.
297
298```rust
299// BEFORE
300enum Action { Move { distance: u32 }, Stop }
301
302fn handle(action: Action) {
303 match action {
304 Action::Move { distance } => ┃if distance > 10 { foo() },
305 _ => (),
306 }
307}
308
309// AFTER
310enum Action { Move { distance: u32 }, Stop }
311
312fn handle(action: Action) {
313 match action {
314 Action::Move { distance } if distance > 10 => foo(),
315 _ => (),
316 }
317}
318```
319
320## `move_bounds_to_where_clause`
321
322Moves inline type bounds to a where clause.
323
324```rust
325// BEFORE
326fn apply<T, U, ┃F: FnOnce(T) -> U>(f: F, x: T) -> U {
327 f(x)
328}
329
330// AFTER
331fn apply<T, U, F>(f: F, x: T) -> U where F: FnOnce(T) -> U {
332 f(x)
333}
334```
335
336## `move_guard_to_arm_body`
337
338Moves match guard into match arm body.
339
340```rust
341// BEFORE
342enum Action { Move { distance: u32 }, Stop }
343
344fn handle(action: Action) {
345 match action {
346 Action::Move { distance } ┃if distance > 10 => foo(),
347 _ => (),
348 }
349}
350
351// AFTER
352enum Action { Move { distance: u32 }, Stop }
353
354fn handle(action: Action) {
355 match action {
356 Action::Move { distance } => if distance > 10 { foo() },
357 _ => (),
358 }
359}
360```