### What it does
Checks for manual implementations of the non-exhaustive pattern.

### Why is this bad?
Using the #[non_exhaustive] attribute expresses better the intent
and allows possible optimizations when applied to enums.

### Example
```
struct S {
    pub a: i32,
    pub b: i32,
    _c: (),
}

enum E {
    A,
    B,
    #[doc(hidden)]
    _C,
}

struct T(pub i32, pub i32, ());
```
Use instead:
```
#[non_exhaustive]
struct S {
    pub a: i32,
    pub b: i32,
}

#[non_exhaustive]
enum E {
    A,
    B,
}

#[non_exhaustive]
struct T(pub i32, pub i32);
```