clippy 0.0.155

A bunch of helpful lints to avoid common pitfalls in Rust
Documentation
error: called `filter(p).map(q)` on an `Iterator`. This is more succinctly expressed by calling `.filter_map(..)` instead.
  --> $DIR/filter_methods.rs:8:21
   |
8  |       let _: Vec<_> = vec![5; 6].into_iter()
   |  _____________________^
9  | |                               .filter(|&x| x == 0)
10 | |                               .map(|x| x * 2)
   | |_____________________________________________^
   |
   = note: `-D filter-map` implied by `-D warnings`

error: called `filter(p).flat_map(q)` on an `Iterator`. This is more succinctly expressed by calling `.flat_map(..)` and filtering by returning an empty Iterator.
  --> $DIR/filter_methods.rs:13:21
   |
13 |       let _: Vec<_> = vec![5_i8; 6].into_iter()
   |  _____________________^
14 | |                                 .filter(|&x| x == 0)
15 | |                                 .flat_map(|x| x.checked_mul(2))
   | |_______________________________________________________________^

error: called `filter_map(p).flat_map(q)` on an `Iterator`. This is more succinctly expressed by calling `.flat_map(..)` and filtering by returning an empty Iterator.
  --> $DIR/filter_methods.rs:18:21
   |
18 |       let _: Vec<_> = vec![5_i8; 6].into_iter()
   |  _____________________^
19 | |                                 .filter_map(|x| x.checked_mul(2))
20 | |                                 .flat_map(|x| x.checked_mul(2))
   | |_______________________________________________________________^

error: called `filter_map(p).map(q)` on an `Iterator`. This is more succinctly expressed by only calling `.filter_map(..)` instead.
  --> $DIR/filter_methods.rs:23:21
   |
23 |       let _: Vec<_> = vec![5_i8; 6].into_iter()
   |  _____________________^
24 | |                                 .filter_map(|x| x.checked_mul(2))
25 | |                                 .map(|x| x.checked_mul(2))
   | |__________________________________________________________^

error: aborting due to 4 previous errors