diff --git a/src/Detection/ConsumedUsageVisitor.php b/src/Detection/ConsumedUsageVisitor.php index d16f148..6e79601 100644 --- a/src/Detection/ConsumedUsageVisitor.php +++ b/src/Detection/ConsumedUsageVisitor.php @@ -174,10 +174,9 @@ private function addName(?Name $name): void return; } - $resolvedName = $name->getAttribute('resolvedName'); - $className = $resolvedName instanceof Name ? $resolvedName->toString() : $name->toString(); - - $this->addUsage($className); + // NameResolver runs with replaceNodes = true, so names are already resolved + // in place and toString() yields the fully-qualified name. + $this->addUsage($name->toString()); } private function addFunctionName(Name $name): void diff --git a/src/Detection/TestUsageScanner.php b/src/Detection/TestUsageScanner.php index eecdf89..24b8445 100644 --- a/src/Detection/TestUsageScanner.php +++ b/src/Detection/TestUsageScanner.php @@ -24,6 +24,9 @@ private Parser $parser; + /** @var Closure(string): ScanResult */ + private Closure $scanFactory; + /** * @param null|Closure(string): (string|false) $readFile */ @@ -35,14 +38,12 @@ public function __construct( $this->consumedUsageExtractor = $consumedUsageExtractor ?? new ConsumedUsageExtractor(); $this->scanResultCache = $scanResultCache ?? new ScanResultCache(); $this->parser = (new ParserFactory())->createForNewestSupportedVersion(); + $this->scanFactory = fn (string $className): ScanResult => $this->scanUncached($className); } public function scan(string $testClassName): ScanResult { - return $this->scanResultCache->get( - $testClassName, - fn (string $className): ScanResult => $this->scanUncached($className) - ); + return $this->scanResultCache->get($testClassName, $this->scanFactory); } private function scanUncached(string $testClassName): ScanResult