Un-used Re-factorings
Before:
foo(big + wide + long + expression, blah);Intended:
expr = big + wide + long + expression; foo(expr, blah);Mistake:
expr = big + wide + long + expression; foo(big + wide + long + expression, blah);Impact: Initial code may pass testing, but future additions to one expression copy or the other is out-of-sync with the other, resulting in the change not showing up or misleading code.
Possible solution: A code analysis tool that warns of un-referenced variables.