### What it does
Checks for code to be replaced by `.retain()`.
### Why is this bad?
`.retain()` is simpler and avoids needless allocation.
### Example
```
let mut vec = vec![0, 1, 2];
vec = vec.iter().filter(|&x| x % 2 == 0).copied().collect();
vec = vec.into_iter().filter(|x| x % 2 == 0).collect();
```
Use instead:
```
let mut vec = vec![0, 1, 2];
vec.retain(|x| x % 2 == 0);
```