An antipattern one runs into on a pretty regular basis is the overly-extended function:
def doFoo() code to do foo> end
Evolves over time, and becomes
def doFoo(special=false) if special <do something> end <code to do foo> end
But in the worst case, it evolves further and becomes
def doFoo(special=false) if (special) <do special> else <do foo> end end
At this point, it's pretty obvious that these shouldn't be in the same function. They don't express common functionality anymore really.
I want a tool that will tell me if there's a parameter to a function that creates two disjoint sets of control flow. This would be a good indication that something about the function needs to be refactored!