diff --git a/src/UsedSymbolExtractor.php b/src/UsedSymbolExtractor.php index 371bc61..84f3b2d 100644 --- a/src/UsedSymbolExtractor.php +++ b/src/UsedSymbolExtractor.php @@ -415,6 +415,7 @@ private function canBeSymbolName( || $tokenBeforeName[0] === (PHP_VERSION_ID > 80000 ? T_NULLSAFE_OBJECT_OPERATOR : -1) || $tokenAfterName[0] === T_INSTEADOF || $tokenAfterName[0] === T_AS + || $tokenAfterName === ':' ) { return false; } diff --git a/tests/UsedSymbolExtractorTest.php b/tests/UsedSymbolExtractorTest.php index bc6e397..ebb2e46 100644 --- a/tests/UsedSymbolExtractorTest.php +++ b/tests/UsedSymbolExtractorTest.php @@ -206,6 +206,7 @@ public function provideVariants(): iterable private static function extensionSymbolsForExtensionsTestCases(): array { return [ + strtolower('Normalizer') => SymbolKind::CLASSLIKE, // https://www.php.net/manual/en/class.normalizer.php strtolower('XMLReader') => SymbolKind::CLASSLIKE, strtolower('PDO') => SymbolKind::CLASSLIKE, strtolower('json_encode') => SymbolKind::FUNCTION, diff --git a/tests/data/not-autoloaded/used-symbols/extensions.php b/tests/data/not-autoloaded/used-symbols/extensions.php index c2c52dd..968c191 100644 --- a/tests/data/not-autoloaded/used-symbols/extensions.php +++ b/tests/data/not-autoloaded/used-symbols/extensions.php @@ -20,3 +20,6 @@ CURLOPT_SSL_VERIFYPEER; \json_decode(''); ZipArchive::class; + +function foo($normalizer) {} +foo(normalizer: 1);