### What it does
Warns if a generic shadows a built-in type.

### Why is this bad?
This gives surprising type errors.

### Example

```
impl<u32> Foo<u32> {
    fn impl_func(&self) -> u32 {
        42
    }
}
```