The match statement should be used only to clearly define some new branches in the control flow. As soon as a case clause contains too many statements this highly decreases the readability of the overall control flow statement. In such case, the content of the case clause should be extracted into a dedicated method.

Noncompliant Code Example

With the default threshold of 5:

myVariable match {
  case 0 => // Noncompliant: 6 lines till next case
    methodCall1()
    methodCall2()
    methodCall3()
    methodCall4()
    methodCall5()
  case 1 =>
  // ...
}

Compliant Solution

myVariable match {
  case 0 => doSomething()
  case 1 =>
  // ...
}
// ...
def doSomething(): Unit = {
  methodCall1()
  methodCall2()
  methodCall3()
  methodCall4()
  methodCall5()
}