paramAnalyzer = $paramAnalyzer; $this->complexNodeRemover = $complexNodeRemover; } public function processRemoveParams(ClassMethod $classMethod) : ?ClassMethod { $paramKeysToBeRemoved = []; foreach ($classMethod->params as $key => $param) { if ($this->paramAnalyzer->isParamUsedInClassMethod($classMethod, $param)) { continue; } $paramKeysToBeRemoved[] = $key; } if ($paramKeysToBeRemoved === []) { return null; } $removedParamKeys = $this->complexNodeRemover->processRemoveParamWithKeys($classMethod, $paramKeysToBeRemoved); if ($removedParamKeys !== []) { return $classMethod; } return null; } }