diff options
Diffstat (limited to 'docs/user/assists.md')
-rw-r--r-- | docs/user/assists.md | 93 |
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 | |||
271 | Merges identical match arms. | ||
272 | |||
273 | ```rust | ||
274 | // BEFORE | ||
275 | enum Action { Move { distance: u32 }, Stop } | ||
276 | |||
277 | fn handle(action: Action) { | ||
278 | match action { | ||
279 | ┃Action::Move(..) => foo(), | ||
280 | Action::Stop => foo(), | ||
281 | } | ||
282 | } | ||
283 | |||
284 | // AFTER | ||
285 | enum Action { Move { distance: u32 }, Stop } | ||
286 | |||
287 | fn handle(action: Action) { | ||
288 | match action { | ||
289 | Action::Move(..) | Action::Stop => foo(), | ||
290 | } | ||
291 | } | ||
292 | ``` | ||
293 | |||
294 | ## `move_arm_cond_to_match_guard` | ||
295 | |||
296 | Moves if expression from match arm body into a guard. | ||
297 | |||
298 | ```rust | ||
299 | // BEFORE | ||
300 | enum Action { Move { distance: u32 }, Stop } | ||
301 | |||
302 | fn handle(action: Action) { | ||
303 | match action { | ||
304 | Action::Move { distance } => ┃if distance > 10 { foo() }, | ||
305 | _ => (), | ||
306 | } | ||
307 | } | ||
308 | |||
309 | // AFTER | ||
310 | enum Action { Move { distance: u32 }, Stop } | ||
311 | |||
312 | fn 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 | |||
322 | Moves inline type bounds to a where clause. | ||
323 | |||
324 | ```rust | ||
325 | // BEFORE | ||
326 | fn apply<T, U, ┃F: FnOnce(T) -> U>(f: F, x: T) -> U { | ||
327 | f(x) | ||
328 | } | ||
329 | |||
330 | // AFTER | ||
331 | fn 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 | |||
338 | Moves match guard into match arm body. | ||
339 | |||
340 | ```rust | ||
341 | // BEFORE | ||
342 | enum Action { Move { distance: u32 }, Stop } | ||
343 | |||
344 | fn handle(action: Action) { | ||
345 | match action { | ||
346 | Action::Move { distance } ┃if distance > 10 => foo(), | ||
347 | _ => (), | ||
348 | } | ||
349 | } | ||
350 | |||
351 | // AFTER | ||
352 | enum Action { Move { distance: u32 }, Stop } | ||
353 | |||
354 | fn handle(action: Action) { | ||
355 | match action { | ||
356 | Action::Move { distance } => if distance > 10 { foo() }, | ||
357 | _ => (), | ||
358 | } | ||
359 | } | ||
360 | ``` | ||