> */ public function getNodeTypes() : array { return [FuncCall::class]; } /** * @param FuncCall $node */ public function refactorWithScope(Node $node, Scope $scope) : ?Node { if (!$this->isName($node, 'get_called_class')) { return null; } if (!$scope->isInClass()) { return null; } $classReflection = $scope->getClassReflection(); if ($classReflection->isAnonymous()) { return null; } if (!$classReflection->isFinal()) { return $this->nodeFactory->createClassConstFetch(ObjectReference::STATIC, 'class'); } return null; } public function provideMinPhpVersion() : int { return PhpVersionFeature::CLASSNAME_CONSTANT; } }