mirror of
https://github.com/rectorphp/rector.git
synced 2025-04-20 23:41:57 +02:00
Updated Rector to commit 756a45aa1a456e28af0b7ae2b78fecc6f6fee6b1
756a45aa1a
[DeadCode] Add RemoveUnusedPublicMethodParameterRector (#5925)
This commit is contained in:
parent
ad8eee4201
commit
df92a40a00
@ -1,4 +1,4 @@
|
||||
# 379 Rules Overview
|
||||
# 380 Rules Overview
|
||||
|
||||
<br>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
|
||||
- [CodingStyle](#codingstyle) (28)
|
||||
|
||||
- [DeadCode](#deadcode) (44)
|
||||
- [DeadCode](#deadcode) (45)
|
||||
|
||||
- [EarlyReturn](#earlyreturn) (9)
|
||||
|
||||
@ -2921,6 +2921,25 @@ Remove unused promoted property
|
||||
|
||||
<br>
|
||||
|
||||
### RemoveUnusedPublicMethodParameterRector
|
||||
|
||||
Remove unused parameter in public method on final class without extends and interface
|
||||
|
||||
- class: [`Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPublicMethodParameterRector`](../rules/DeadCode/Rector/ClassMethod/RemoveUnusedPublicMethodParameterRector.php)
|
||||
|
||||
```diff
|
||||
final class SomeClass
|
||||
{
|
||||
- public function run($a, $b)
|
||||
+ public function run($a)
|
||||
{
|
||||
echo $a;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### RemoveUnusedVariableAssignRector
|
||||
|
||||
Remove unused assigns to variables
|
||||
|
@ -28,7 +28,7 @@ final class UsesClassNameImportSkipVoter implements ClassNameImportSkipVoterInte
|
||||
}
|
||||
public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType, Node $node) : bool
|
||||
{
|
||||
$useImportTypes = $this->useNodesToAddCollector->getUseImportTypesByNode($file, $node);
|
||||
$useImportTypes = $this->useNodesToAddCollector->getUseImportTypesByNode($file);
|
||||
foreach ($useImportTypes as $useImportType) {
|
||||
if (!$useImportType->equals($fullyQualifiedObjectType) && $useImportType->areShortNamesEqual($fullyQualifiedObjectType)) {
|
||||
return \true;
|
||||
|
44
rules/DeadCode/NodeManipulator/ClassMethodParamRemover.php
Normal file
44
rules/DeadCode/NodeManipulator/ClassMethodParamRemover.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\DeadCode\NodeManipulator;
|
||||
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use Rector\NodeAnalyzer\ParamAnalyzer;
|
||||
use Rector\Removing\NodeManipulator\ComplexNodeRemover;
|
||||
final class ClassMethodParamRemover
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeAnalyzer\ParamAnalyzer
|
||||
*/
|
||||
private $paramAnalyzer;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Removing\NodeManipulator\ComplexNodeRemover
|
||||
*/
|
||||
private $complexNodeRemover;
|
||||
public function __construct(ParamAnalyzer $paramAnalyzer, ComplexNodeRemover $complexNodeRemover)
|
||||
{
|
||||
$this->paramAnalyzer = $paramAnalyzer;
|
||||
$this->complexNodeRemover = $complexNodeRemover;
|
||||
}
|
||||
public function processRemoveParams(ClassMethod $classMethod) : ?ClassMethod
|
||||
{
|
||||
$paramKeysToBeRemoved = [];
|
||||
foreach ($classMethod->params as $key => $param) {
|
||||
if ($this->paramAnalyzer->isParamUsedInClassMethod($classMethod, $param)) {
|
||||
continue;
|
||||
}
|
||||
$paramKeysToBeRemoved[] = $key;
|
||||
}
|
||||
if ($paramKeysToBeRemoved === []) {
|
||||
return null;
|
||||
}
|
||||
$removedParamKeys = $this->complexNodeRemover->processRemoveParamWithKeys($classMethod, $paramKeysToBeRemoved);
|
||||
if ($removedParamKeys !== []) {
|
||||
return $classMethod;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -7,10 +7,10 @@ use PhpParser\Node;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\Reflection\ClassReflection;
|
||||
use Rector\DeadCode\NodeManipulator\ClassMethodParamRemover;
|
||||
use Rector\NodeAnalyzer\ParamAnalyzer;
|
||||
use Rector\Rector\AbstractRector;
|
||||
use Rector\Reflection\ReflectionResolver;
|
||||
use Rector\Removing\NodeManipulator\ComplexNodeRemover;
|
||||
use Rector\ValueObject\MethodName;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
@ -24,21 +24,21 @@ final class RemoveUnusedConstructorParamRector extends AbstractRector
|
||||
* @var \Rector\NodeAnalyzer\ParamAnalyzer
|
||||
*/
|
||||
private $paramAnalyzer;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Removing\NodeManipulator\ComplexNodeRemover
|
||||
*/
|
||||
private $complexNodeRemover;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Reflection\ReflectionResolver
|
||||
*/
|
||||
private $reflectionResolver;
|
||||
public function __construct(ParamAnalyzer $paramAnalyzer, ComplexNodeRemover $complexNodeRemover, ReflectionResolver $reflectionResolver)
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\DeadCode\NodeManipulator\ClassMethodParamRemover
|
||||
*/
|
||||
private $classMethodParamRemover;
|
||||
public function __construct(ParamAnalyzer $paramAnalyzer, ReflectionResolver $reflectionResolver, ClassMethodParamRemover $classMethodParamRemover)
|
||||
{
|
||||
$this->paramAnalyzer = $paramAnalyzer;
|
||||
$this->complexNodeRemover = $complexNodeRemover;
|
||||
$this->reflectionResolver = $reflectionResolver;
|
||||
$this->classMethodParamRemover = $classMethodParamRemover;
|
||||
}
|
||||
public function getRuleDefinition() : RuleDefinition
|
||||
{
|
||||
@ -101,28 +101,10 @@ CODE_SAMPLE
|
||||
return null;
|
||||
}
|
||||
}
|
||||
$changedConstructorClassMethod = $this->processRemoveParams($constructorClassMethod);
|
||||
$changedConstructorClassMethod = $this->classMethodParamRemover->processRemoveParams($constructorClassMethod);
|
||||
if (!$changedConstructorClassMethod instanceof ClassMethod) {
|
||||
return null;
|
||||
}
|
||||
return $node;
|
||||
}
|
||||
private function processRemoveParams(ClassMethod $classMethod) : ?ClassMethod
|
||||
{
|
||||
$paramKeysToBeRemoved = [];
|
||||
foreach ($classMethod->params as $key => $param) {
|
||||
if ($this->paramAnalyzer->isParamUsedInClassMethod($classMethod, $param)) {
|
||||
continue;
|
||||
}
|
||||
$paramKeysToBeRemoved[] = $key;
|
||||
}
|
||||
if ($paramKeysToBeRemoved === []) {
|
||||
return null;
|
||||
}
|
||||
$removedParamKeys = $this->complexNodeRemover->processRemoveParamWithKeys($classMethod, $paramKeysToBeRemoved);
|
||||
if ($removedParamKeys !== []) {
|
||||
return $classMethod;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\DeadCode\Rector\ClassMethod;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Name\FullyQualified;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use Rector\DeadCode\NodeManipulator\ClassMethodParamRemover;
|
||||
use Rector\DeadCode\NodeManipulator\VariadicFunctionLikeDetector;
|
||||
use Rector\NodeAnalyzer\MagicClassMethodAnalyzer;
|
||||
use Rector\Rector\AbstractRector;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
* @see \Rector\Tests\DeadCode\Rector\ClassMethod\RemoveUnusedPublicMethodParameterRector\RemoveUnusedPublicMethodParameterRectorTest
|
||||
*/
|
||||
final class RemoveUnusedPublicMethodParameterRector extends AbstractRector
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\DeadCode\NodeManipulator\VariadicFunctionLikeDetector
|
||||
*/
|
||||
private $variadicFunctionLikeDetector;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\DeadCode\NodeManipulator\ClassMethodParamRemover
|
||||
*/
|
||||
private $classMethodParamRemover;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeAnalyzer\MagicClassMethodAnalyzer
|
||||
*/
|
||||
private $magicClassMethodAnalyzer;
|
||||
public function __construct(VariadicFunctionLikeDetector $variadicFunctionLikeDetector, ClassMethodParamRemover $classMethodParamRemover, MagicClassMethodAnalyzer $magicClassMethodAnalyzer)
|
||||
{
|
||||
$this->variadicFunctionLikeDetector = $variadicFunctionLikeDetector;
|
||||
$this->classMethodParamRemover = $classMethodParamRemover;
|
||||
$this->magicClassMethodAnalyzer = $magicClassMethodAnalyzer;
|
||||
}
|
||||
public function getRuleDefinition() : RuleDefinition
|
||||
{
|
||||
return new RuleDefinition('Remove unused parameter in public method on final class without extends and interface', [new CodeSample(<<<'CODE_SAMPLE'
|
||||
final class SomeClass
|
||||
{
|
||||
public function run($a, $b)
|
||||
{
|
||||
echo $a;
|
||||
}
|
||||
}
|
||||
CODE_SAMPLE
|
||||
, <<<'CODE_SAMPLE'
|
||||
final class SomeClass
|
||||
{
|
||||
public function run($a)
|
||||
{
|
||||
echo $a;
|
||||
}
|
||||
}
|
||||
CODE_SAMPLE
|
||||
)]);
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
*/
|
||||
public function getNodeTypes() : array
|
||||
{
|
||||
return [Class_::class];
|
||||
}
|
||||
/**
|
||||
* @param Class_ $node
|
||||
*/
|
||||
public function refactor(Node $node) : ?Node
|
||||
{
|
||||
// may has child, or override parent that needs follow signature
|
||||
if (!$node->isFinal() || $node->extends instanceof FullyQualified || $node->implements !== []) {
|
||||
return null;
|
||||
}
|
||||
$hasChanged = \false;
|
||||
foreach ($node->getMethods() as $classMethod) {
|
||||
if (!$classMethod->isPublic()) {
|
||||
continue;
|
||||
}
|
||||
if ($classMethod->params === []) {
|
||||
continue;
|
||||
}
|
||||
if ($this->magicClassMethodAnalyzer->isUnsafeOverridden($classMethod)) {
|
||||
continue;
|
||||
}
|
||||
if ($this->variadicFunctionLikeDetector->isVariadic($classMethod)) {
|
||||
continue;
|
||||
}
|
||||
$changedMethod = $this->classMethodParamRemover->processRemoveParams($classMethod);
|
||||
if (!$changedMethod instanceof ClassMethod) {
|
||||
continue;
|
||||
}
|
||||
$hasChanged = \true;
|
||||
}
|
||||
if ($hasChanged) {
|
||||
return $node;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -4,8 +4,40 @@ declare (strict_types=1);
|
||||
namespace Rector\Removing\NodeManipulator;
|
||||
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
||||
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover;
|
||||
use Rector\Comments\NodeDocBlock\DocBlockUpdater;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
final class ComplexNodeRemover
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
|
||||
*/
|
||||
private $phpDocInfoFactory;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover
|
||||
*/
|
||||
private $phpDocTagRemover;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Comments\NodeDocBlock\DocBlockUpdater
|
||||
*/
|
||||
private $docBlockUpdater;
|
||||
public function __construct(PhpDocInfoFactory $phpDocInfoFactory, PhpDocTagRemover $phpDocTagRemover, NodeNameResolver $nodeNameResolver, DocBlockUpdater $docBlockUpdater)
|
||||
{
|
||||
$this->phpDocInfoFactory = $phpDocInfoFactory;
|
||||
$this->phpDocTagRemover = $phpDocTagRemover;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->docBlockUpdater = $docBlockUpdater;
|
||||
}
|
||||
/**
|
||||
* @param int[] $paramKeysToBeRemoved
|
||||
* @return int[]
|
||||
@ -14,6 +46,7 @@ final class ComplexNodeRemover
|
||||
{
|
||||
$totalKeys = \count($classMethod->params) - 1;
|
||||
$removedParamKeys = [];
|
||||
$phpdocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod);
|
||||
foreach ($paramKeysToBeRemoved as $paramKeyToBeRemoved) {
|
||||
$startNextKey = $paramKeyToBeRemoved + 1;
|
||||
for ($nextKey = $startNextKey; $nextKey <= $totalKeys; ++$nextKey) {
|
||||
@ -27,7 +60,13 @@ final class ComplexNodeRemover
|
||||
}
|
||||
return [];
|
||||
}
|
||||
$paramName = (string) $this->nodeNameResolver->getName($classMethod->params[$paramKeyToBeRemoved]);
|
||||
unset($classMethod->params[$paramKeyToBeRemoved]);
|
||||
$paramTagValueByName = $phpdocInfo->getParamTagValueByName($paramName);
|
||||
if ($paramTagValueByName instanceof ParamTagValueNode) {
|
||||
$this->phpDocTagRemover->removeTagValueFromNode($phpdocInfo, $paramTagValueByName);
|
||||
$this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($classMethod);
|
||||
}
|
||||
$removedParamKeys[] = $paramKeyToBeRemoved;
|
||||
}
|
||||
return $removedParamKeys;
|
||||
|
@ -132,7 +132,7 @@ CODE_SAMPLE
|
||||
if (!$classReflection->isInterface()) {
|
||||
return \false;
|
||||
}
|
||||
return $this->classManipulator->hasParentMethodOrInterface($methodCallRename->getObjectType(), $methodCallRename->getOldMethod(), $methodCallRename->getNewMethod());
|
||||
return $this->classManipulator->hasParentMethodOrInterface($methodCallRename->getObjectType(), $methodCallRename->getOldMethod());
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_ $classOrInterface
|
||||
|
@ -150,7 +150,7 @@ final class ApplicationFileProcessor
|
||||
// trigger cache class names collection
|
||||
$this->dynamicSourceLocatorProvider->provide();
|
||||
if ($configuration->isParallel()) {
|
||||
$processResult = $this->runParallel($filePaths, $configuration, $input, $postFileCallback);
|
||||
$processResult = $this->runParallel($filePaths, $input, $postFileCallback);
|
||||
} else {
|
||||
$processResult = $this->processFiles($filePaths, $configuration, $preFileCallback, $postFileCallback);
|
||||
}
|
||||
@ -265,7 +265,7 @@ final class ApplicationFileProcessor
|
||||
* @param string[] $filePaths
|
||||
* @param callable(int $stepCount): void $postFileCallback
|
||||
*/
|
||||
private function runParallel(array $filePaths, Configuration $configuration, InputInterface $input, callable $postFileCallback) : ProcessResult
|
||||
private function runParallel(array $filePaths, InputInterface $input, callable $postFileCallback) : ProcessResult
|
||||
{
|
||||
$schedule = $this->scheduleFactory->create($this->cpuCoreCountProvider->provide(), SimpleParameterProvider::provideIntParameter(Option::PARALLEL_JOB_SIZE), SimpleParameterProvider::provideIntParameter(Option::PARALLEL_MAX_NUMBER_OF_PROCESSES), $filePaths);
|
||||
$mainScript = $this->resolveCalledRectorBinary();
|
||||
@ -273,7 +273,7 @@ final class ApplicationFileProcessor
|
||||
throw new ParallelShouldNotHappenException('[parallel] Main script was not found');
|
||||
}
|
||||
// mimics see https://github.com/phpstan/phpstan-src/commit/9124c66dcc55a222e21b1717ba5f60771f7dda92#diff-387b8f04e0db7a06678eb52ce0c0d0aff73e0d7d8fc5df834d0a5fbec198e5daR139
|
||||
return $this->parallelFileProcessor->process($schedule, $mainScript, $postFileCallback, $input, $configuration);
|
||||
return $this->parallelFileProcessor->process($schedule, $mainScript, $postFileCallback, $input);
|
||||
}
|
||||
/**
|
||||
* Path to called "rector" binary file, e.g. "vendor/bin/rector" returns "vendor/bin/rector" This is needed to re-call the
|
||||
|
@ -19,12 +19,12 @@ final class VersionResolver
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = '66e57260e66e32c78fac0738d69b49e009b348d6';
|
||||
public const PACKAGE_VERSION = '756a45aa1a456e28af0b7ae2b78fecc6f6fee6b1';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2024-05-30 14:26:47';
|
||||
public const RELEASE_DATE = '2024-05-30 09:37:00';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
@ -16,6 +16,7 @@ use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedConstructorParamRector;
|
||||
use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPrivateMethodParameterRector;
|
||||
use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPrivateMethodRector;
|
||||
use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPromotedPropertyRector;
|
||||
use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPublicMethodParameterRector;
|
||||
use Rector\DeadCode\Rector\ClassMethod\RemoveUselessParamTagRector;
|
||||
use Rector\DeadCode\Rector\ClassMethod\RemoveUselessReturnExprInConstructRector;
|
||||
use Rector\DeadCode\Rector\ClassMethod\RemoveUselessReturnTagRector;
|
||||
@ -107,6 +108,7 @@ final class DeadCodeLevel
|
||||
// removing methods could be risky if there is some magic loading them
|
||||
RemoveUnusedPromotedPropertyRector::class,
|
||||
RemoveUnusedPrivateMethodParameterRector::class,
|
||||
RemoveUnusedPublicMethodParameterRector::class,
|
||||
RemoveUnusedPrivateMethodRector::class,
|
||||
RemoveUnreachableStatementRector::class,
|
||||
RemoveUnusedVariableAssignRector::class,
|
||||
|
@ -24,7 +24,7 @@ final class ClassManipulator
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->reflectionProvider = $reflectionProvider;
|
||||
}
|
||||
public function hasParentMethodOrInterface(ObjectType $objectType, string $oldMethod, string $newMethod) : bool
|
||||
public function hasParentMethodOrInterface(ObjectType $objectType, string $oldMethod) : bool
|
||||
{
|
||||
if (!$this->reflectionProvider->hasClass($objectType->getClassName())) {
|
||||
return \false;
|
||||
|
@ -14,7 +14,6 @@ use Rector\Configuration\Parameter\SimpleParameterProvider;
|
||||
use Rector\Console\Command\ProcessCommand;
|
||||
use Rector\Parallel\Command\WorkerCommandLineFactory;
|
||||
use Rector\Parallel\ValueObject\Bridge;
|
||||
use Rector\ValueObject\Configuration;
|
||||
use Rector\ValueObject\Error\SystemError;
|
||||
use Rector\ValueObject\ProcessResult;
|
||||
use Rector\ValueObject\Reporting\FileDiff;
|
||||
@ -63,7 +62,7 @@ final class ParallelFileProcessor
|
||||
/**
|
||||
* @param callable(int $stepCount): void $postFileCallback Used for progress bar jump
|
||||
*/
|
||||
public function process(Schedule $schedule, string $mainScript, callable $postFileCallback, InputInterface $input, Configuration $configuration) : ProcessResult
|
||||
public function process(Schedule $schedule, string $mainScript, callable $postFileCallback, InputInterface $input) : ProcessResult
|
||||
{
|
||||
$jobs = \array_reverse($schedule->getJobs());
|
||||
$streamSelectLoop = new StreamSelectLoop();
|
||||
|
@ -16,10 +16,9 @@ final class AttributeArrayNameInliner
|
||||
{
|
||||
/**
|
||||
* @param Array_|Arg[] $array
|
||||
* @param string[] $classReferenceFields
|
||||
* @return Arg[]
|
||||
*/
|
||||
public function inlineArrayToArgs($array, array $classReferenceFields = []) : array
|
||||
public function inlineArrayToArgs($array) : array
|
||||
{
|
||||
if (\is_array($array)) {
|
||||
return $this->inlineArray($array);
|
||||
|
@ -3,7 +3,6 @@
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PostRector\Collector;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Identifier;
|
||||
use PhpParser\Node\Name\FullyQualified;
|
||||
use Rector\Naming\Naming\UseImportsResolver;
|
||||
@ -61,7 +60,7 @@ final class UseNodesToAddCollector
|
||||
/**
|
||||
* @return AliasedObjectType[]|FullyQualifiedObjectType[]
|
||||
*/
|
||||
public function getUseImportTypesByNode(File $file, Node $node) : array
|
||||
public function getUseImportTypesByNode(File $file) : array
|
||||
{
|
||||
$filePath = $file->getFilePath();
|
||||
$objectTypes = $this->useImportTypesInFilePath[$filePath] ?? [];
|
||||
@ -80,7 +79,7 @@ final class UseNodesToAddCollector
|
||||
}
|
||||
public function hasImport(File $file, FullyQualified $fullyQualified, FullyQualifiedObjectType $fullyQualifiedObjectType) : bool
|
||||
{
|
||||
$useImports = $this->getUseImportTypesByNode($file, $fullyQualified);
|
||||
$useImports = $this->getUseImportTypesByNode($file);
|
||||
foreach ($useImports as $useImport) {
|
||||
if ($useImport->equals($fullyQualifiedObjectType)) {
|
||||
return \true;
|
||||
|
2
vendor/composer/autoload_classmap.php
vendored
2
vendor/composer/autoload_classmap.php
vendored
@ -1245,6 +1245,7 @@ return array(
|
||||
'Rector\\DeadCode\\NodeAnalyzer\\SafeLeftTypeBooleanAndOrAnalyzer' => $baseDir . '/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php',
|
||||
'Rector\\DeadCode\\NodeAnalyzer\\UsedVariableNameAnalyzer' => $baseDir . '/rules/DeadCode/NodeAnalyzer/UsedVariableNameAnalyzer.php',
|
||||
'Rector\\DeadCode\\NodeCollector\\UnusedParameterResolver' => $baseDir . '/rules/DeadCode/NodeCollector/UnusedParameterResolver.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\ClassMethodParamRemover' => $baseDir . '/rules/DeadCode/NodeManipulator/ClassMethodParamRemover.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\ControllerClassMethodManipulator' => $baseDir . '/rules/DeadCode/NodeManipulator/ControllerClassMethodManipulator.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\CountManipulator' => $baseDir . '/rules/DeadCode/NodeManipulator/CountManipulator.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\LivingCodeManipulator' => $baseDir . '/rules/DeadCode/NodeManipulator/LivingCodeManipulator.php',
|
||||
@ -1269,6 +1270,7 @@ return array(
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodParameterRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodParameterRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPromotedPropertyRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPublicMethodParameterRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPublicMethodParameterRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessParamTagRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessReturnExprInConstructRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnExprInConstructRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessReturnTagRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php',
|
||||
|
2
vendor/composer/autoload_static.php
vendored
2
vendor/composer/autoload_static.php
vendored
@ -1464,6 +1464,7 @@ class ComposerStaticInit617a88c9745824dcc98208775208cc4b
|
||||
'Rector\\DeadCode\\NodeAnalyzer\\SafeLeftTypeBooleanAndOrAnalyzer' => __DIR__ . '/../..' . '/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php',
|
||||
'Rector\\DeadCode\\NodeAnalyzer\\UsedVariableNameAnalyzer' => __DIR__ . '/../..' . '/rules/DeadCode/NodeAnalyzer/UsedVariableNameAnalyzer.php',
|
||||
'Rector\\DeadCode\\NodeCollector\\UnusedParameterResolver' => __DIR__ . '/../..' . '/rules/DeadCode/NodeCollector/UnusedParameterResolver.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\ClassMethodParamRemover' => __DIR__ . '/../..' . '/rules/DeadCode/NodeManipulator/ClassMethodParamRemover.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\ControllerClassMethodManipulator' => __DIR__ . '/../..' . '/rules/DeadCode/NodeManipulator/ControllerClassMethodManipulator.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\CountManipulator' => __DIR__ . '/../..' . '/rules/DeadCode/NodeManipulator/CountManipulator.php',
|
||||
'Rector\\DeadCode\\NodeManipulator\\LivingCodeManipulator' => __DIR__ . '/../..' . '/rules/DeadCode/NodeManipulator/LivingCodeManipulator.php',
|
||||
@ -1488,6 +1489,7 @@ class ComposerStaticInit617a88c9745824dcc98208775208cc4b
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodParameterRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodParameterRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPromotedPropertyRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPublicMethodParameterRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPublicMethodParameterRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessParamTagRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessReturnExprInConstructRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnExprInConstructRector.php',
|
||||
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessReturnTagRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php',
|
||||
|
Loading…
x
Reference in New Issue
Block a user