> */ public function getNodeTypes() : array { return [Switch_::class]; } /** * @param Switch_ $node */ public function refactor(Node $node) : ?Node { $defaultCases = []; foreach ($node->cases as $key => $case) { if ($case->cond instanceof Expr) { continue; } $defaultCases[$key] = $case; } $defaultCaseCount = \count($defaultCases); if ($defaultCaseCount < 2) { return null; } foreach ($node->cases as $key => $case) { if ($case->cond instanceof Expr) { continue; } // remove previous default cases if ($defaultCaseCount > 1) { unset($node->cases[$key]); --$defaultCaseCount; } } return $node; } }