Reports 'fall-through' in a switch statement. Fall-through is defined to occur when a series of executable statements after a case label is not guaranteed to transfer control before the next case label. For example if the branch is missing a break statement. In that case, control falls through to the statements after that switch label, even though the switch expression does not equal the value of the fallen-through label. While occasionally intended, this construction is confusing, and is often the result of a typo.

This inspection ignores any fall-through commented with a text matching the regex pattern (?i)falls?\s*thro?u.