> */ public function getNodeTypes() : array { return [Class_::class]; } /** * @param Class_ $node */ public function refactor(Node $node) : ?Node { if (!$node->isFinal()) { return null; } $hasChanged = \false; $this->traverseNodesWithCallable($node, function (Node $node) use(&$hasChanged) : ?New_ { if (!$node instanceof New_) { return null; } if (!$this->isName($node->class, ObjectReference::STATIC)) { return null; } $hasChanged = \true; $node->class = new Name(ObjectReference::SELF); return $node; }); if ($hasChanged) { return $node; } return null; } }