shortNameResolver = $shortNameResolver; } public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType, Node $node) : bool { // "new X" or "X::static()" /** @var array $shortNamesToFullyQualifiedNames */ $shortNamesToFullyQualifiedNames = $this->shortNameResolver->resolveFromFile($file); $fullyQualifiedObjectTypeShortName = $fullyQualifiedObjectType->getShortName(); $className = $fullyQualifiedObjectType->getClassName(); foreach ($shortNamesToFullyQualifiedNames as $shortName => $fullyQualifiedName) { if ($fullyQualifiedObjectTypeShortName !== $shortName) { $shortName = $this->cleanShortName($shortName); } if ($fullyQualifiedObjectTypeShortName !== $shortName) { continue; } $fullyQualifiedName = \ltrim($fullyQualifiedName, '\\'); return $className !== $fullyQualifiedName; } return \false; } private function cleanShortName(string $shortName) : string { return \strncmp($shortName, '\\', \strlen('\\')) === 0 ? \ltrim((string) Strings::after($shortName, '\\', -1)) : $shortName; } }