### What it does
Checks for diverging calls that are not match arms or
statements.

### Why is this bad?
It is often confusing to read. In addition, the
sub-expression evaluation order for Rust is not well documented.

### Known problems
Someone might want to use `some_bool || panic!()` as a
shorthand.

### Example
```
let a = b() || panic!() || c();
// `c()` is dead, `panic!()` is only called if `b()` returns `false`
let x = (a, b, c, panic!());
// can simply be replaced by `panic!()`
```