### What it does
Checks for `&*(&T)`.

### Why is this bad?
Dereferencing and then borrowing a reference value has no effect in most cases.

### Known problems
False negative on such code:
```
let x = &12;
let addr_x = &x as *const _ as usize;
let addr_y = &&*x as *const _ as usize; // assert ok now, and lint triggered.
                                        // But if we fix it, assert will fail.
assert_ne!(addr_x, addr_y);
```

### Example
```
let s = &String::new();

let a: &String = &* s;
```

Use instead:
```
let a: &String = s;
```