### What it does
Checks for any kind of arithmetic operation of any type.

Operators like `+`, `-`, `*` or `<<` are usually capable of overflowing according to the [Rust
Reference](https://doc.rust-lang.org/reference/expressions/operator-expr.html#overflow),
or can panic (`/`, `%`). Known safe built-in types like `Wrapping` or `Saturing` are filtered
away.

### Why is this bad?
Integer overflow will trigger a panic in debug builds or will wrap in
release mode. Division by zero will cause a panic in either mode. In some applications one
wants explicitly checked, wrapping or saturating arithmetic.

#### Example
```
a + 1;
```

Third-party types also tend to overflow.

#### Example
```
use rust_decimal::Decimal;
let _n = Decimal::MAX + Decimal::MAX;
```

### Allowed types
Custom allowed types can be specified through the "arithmetic-allowed" filter.