### What it does Checks for matches where all arms match a reference, suggesting to remove the reference and deref the matched expression instead. It also checks for `if let &foo = bar` blocks. ### Why is this bad? It just makes the code less readable. That reference destructuring adds nothing to the code. ### Example ``` match x { &A(ref y) => foo(y), &B => bar(), _ => frob(&x), } ``` Use instead: ``` match *x { A(ref y) => foo(y), B => bar(), _ => frob(x), } ```