Updated Rector to commit 756a45aa1a456e28af0b7ae2b78fecc6f6fee6b1

756a45aa1a [DeadCode] Add RemoveUnusedPublicMethodParameterRector (#5925)
This commit is contained in:
Tomas Votruba 2024-05-30 07:40:25 +00:00
parent ad8eee4201
commit df92a40a00
16 changed files with 236 additions and 44 deletions

View File

@ -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

View File

@ -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;

View 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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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
*/

View File

@ -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,

View File

@ -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;

View File

@ -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();

View File

@ -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);

View File

@ -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;

View File

@ -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',

View File

@ -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',