### What it does
Checks for bindings that shadow other bindings already in
scope, while reusing the original value.

### Why is this bad?
Not too much, in fact it's a common pattern in Rust
code. Still, some argue that name shadowing like this hurts readability,
because a value may be bound to different things depending on position in
the code.

### Example
```
let x = 2;
let x = x + 1;
```
use different variable name:
```
let x = 2;
let y = x + 1;
```