### What it does
Checks for comparisons where the relation is always either
true or false, but where one side has been upcast so that the comparison is
necessary. Only integer types are checked.

### Why is this bad?
An expression like `let x : u8 = ...; (x as u32) > 300`
will mistakenly imply that it is possible for `x` to be outside the range of
`u8`.

### Known problems
https://github.com/rust-lang/rust-clippy/issues/886

### Example
```
let x: u8 = 1;
(x as u32) > 300;
```