### What it does

Checks for calls to `iter`, `iter_mut` or `into_iter` on empty collections

### Why is this bad?

It is simpler to use the empty function from the standard library:

### Example

```
use std::{slice, option};
let a: slice::Iter<i32> = [].iter();
let f: option::IntoIter<i32> = None.into_iter();
```
Use instead:
```
use std::iter;
let a: iter::Empty<i32> = iter::empty();
let b: iter::Empty<i32> = iter::empty();
```

### Known problems

The type of the resulting iterator might become incompatible with its usage