classNameImportSkipVoters = $classNameImportSkipVoters; } public function shouldSkipNameForFullyQualifiedObjectType(\PhpParser\Node $node, \Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType $fullyQualifiedObjectType) : bool { foreach ($this->classNameImportSkipVoters as $classNameImportSkipVoter) { if ($classNameImportSkipVoter->shouldSkip($fullyQualifiedObjectType, $node)) { return \true; } } return \false; } public function isShortNameInUseStatement(\PhpParser\Node\Name $name) : bool { $longName = $name->toString(); if (\RectorPrefix20210515\Nette\Utils\Strings::contains($longName, '\\')) { return \false; } return $this->isFoundInUse($name); } public function isFoundInUse(\PhpParser\Node\Name $name) : bool { /** @var Use_[] $uses */ $uses = (array) $name->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::USE_NODES); foreach ($uses as $use) { foreach ($use->uses as $useUse) { if ($useUse->name->getLast() !== $name->getLast()) { continue; } return \true; } } return \false; } }