@@ -118,6 +118,13 @@ class Analyser
118118 */
119119 private $ extensionSymbols ;
120120
121+ /**
122+ * lowercase symbol name => kind
123+ *
124+ * @var array<string, SymbolKind::*>
125+ */
126+ private $ extensionSymbolKinds ;
127+
121128 /**
122129 * @param array<string, ClassLoader> $classLoaders vendorDir => ClassLoader (e.g. result of \Composer\Autoload\ClassLoader::getRegisteredLoaders())
123130 * @param array<string, bool> $composerJsonDependencies package or ext-* => is dev dependency
@@ -385,9 +392,7 @@ private function getUsedSymbolsInFile(string $filePath): array
385392 }
386393
387394 return (new UsedSymbolExtractor ($ code ))->parseUsedSymbols (
388- array_keys ($ this ->extensionSymbols [SymbolKind::CLASSLIKE ]),
389- array_keys ($ this ->extensionSymbols [SymbolKind::FUNCTION ]),
390- array_keys ($ this ->extensionSymbols [SymbolKind::CONSTANT ])
395+ $ this ->extensionSymbolKinds
391396 );
392397 }
393398
@@ -547,6 +552,7 @@ private function initExistingSymbols(): void
547552 $ this ->ignoredSymbols [$ constantName ] = true ;
548553 } else {
549554 $ this ->extensionSymbols [SymbolKind::CONSTANT ][$ constantName ] = $ extensionName ;
555+ $ this ->extensionSymbolKinds [$ constantName ] = SymbolKind::CONSTANT ;
550556 }
551557 }
552558 }
@@ -568,6 +574,7 @@ private function initExistingSymbols(): void
568574 $ this ->ignoredSymbols [$ functionName ] = true ;
569575 } else {
570576 $ this ->extensionSymbols [SymbolKind::FUNCTION ][$ functionName ] = $ extensionName ;
577+ $ this ->extensionSymbolKinds [$ functionName ] = SymbolKind::FUNCTION ;
571578 }
572579 }
573580 }
@@ -590,6 +597,7 @@ private function initExistingSymbols(): void
590597 $ this ->ignoredSymbols [$ classLikeName ] = true ;
591598 } else {
592599 $ this ->extensionSymbols [SymbolKind::CLASSLIKE ][$ classLikeName ] = $ extensionName ;
600+ $ this ->extensionSymbolKinds [strtolower ($ classLikeName )] = SymbolKind::CLASSLIKE ;
593601 }
594602 }
595603 }
0 commit comments