=== Exceptions `case` labels that declare variables cannot have multiple patterns. Therefore this situation is ignored. [source,swift] ---- switch a { case .STR_CASE(let x): print(x) case .INT_CASE(let x): print(x) default: print("default") } ---- Blocks in an `if` chain that contain a single line of code are ignored, as are blocks in a `switch` statement that contain a single line of code with or without a following `break`. [source,swift] ---- if a >= 0 && a < 10 { // no issue, usually this is done on purpose to increase the readability doTheThing() } else if a >= 10 && a < 20 { doTheThing() } else if a >= 20 && a < 50 { doFirstThing() } ---- But this exception does not apply to `if` chains without `else`-s, or to `switch`-es without default clauses when all branches have the same single line of code. In the case of `if` chains with `else`-s, or of `switch`-es with default clauses, rule S3923 raises a bug. [source,swift] ---- if a >= 0 && a < 10 { // Noncompliant, this might have been done on purpose but probably not doTheThing() } else if a >= 10 && a < 20 { doTheThing() } ----