mirror of https://github.com/rectorphp/rector.git
Updated Rector to commit 3e6a4923d463e2a2d104ac283dae04343ee2a2d0
3e6a4923d4
[DeadCode] Skip implements interface on RemoveUnusedConstructorParamRector (#5778)
This commit is contained in:
parent
e538a96c9b
commit
c23b2384d3
|
@ -6,8 +6,10 @@ namespace Rector\DeadCode\Rector\ClassMethod;
|
||||||
use PhpParser\Node;
|
use PhpParser\Node;
|
||||||
use PhpParser\Node\Stmt\Class_;
|
use PhpParser\Node\Stmt\Class_;
|
||||||
use PhpParser\Node\Stmt\ClassMethod;
|
use PhpParser\Node\Stmt\ClassMethod;
|
||||||
|
use PHPStan\Reflection\ClassReflection;
|
||||||
use Rector\NodeAnalyzer\ParamAnalyzer;
|
use Rector\NodeAnalyzer\ParamAnalyzer;
|
||||||
use Rector\Rector\AbstractRector;
|
use Rector\Rector\AbstractRector;
|
||||||
|
use Rector\Reflection\ReflectionResolver;
|
||||||
use Rector\Removing\NodeManipulator\ComplexNodeRemover;
|
use Rector\Removing\NodeManipulator\ComplexNodeRemover;
|
||||||
use Rector\ValueObject\MethodName;
|
use Rector\ValueObject\MethodName;
|
||||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||||
|
@ -27,10 +29,16 @@ final class RemoveUnusedConstructorParamRector extends AbstractRector
|
||||||
* @var \Rector\Removing\NodeManipulator\ComplexNodeRemover
|
* @var \Rector\Removing\NodeManipulator\ComplexNodeRemover
|
||||||
*/
|
*/
|
||||||
private $complexNodeRemover;
|
private $complexNodeRemover;
|
||||||
public function __construct(ParamAnalyzer $paramAnalyzer, ComplexNodeRemover $complexNodeRemover)
|
/**
|
||||||
|
* @readonly
|
||||||
|
* @var \Rector\Reflection\ReflectionResolver
|
||||||
|
*/
|
||||||
|
private $reflectionResolver;
|
||||||
|
public function __construct(ParamAnalyzer $paramAnalyzer, ComplexNodeRemover $complexNodeRemover, ReflectionResolver $reflectionResolver)
|
||||||
{
|
{
|
||||||
$this->paramAnalyzer = $paramAnalyzer;
|
$this->paramAnalyzer = $paramAnalyzer;
|
||||||
$this->complexNodeRemover = $complexNodeRemover;
|
$this->complexNodeRemover = $complexNodeRemover;
|
||||||
|
$this->reflectionResolver = $reflectionResolver;
|
||||||
}
|
}
|
||||||
public function getRuleDefinition() : RuleDefinition
|
public function getRuleDefinition() : RuleDefinition
|
||||||
{
|
{
|
||||||
|
@ -83,6 +91,16 @@ CODE_SAMPLE
|
||||||
if ($constructorClassMethod->isAbstract()) {
|
if ($constructorClassMethod->isAbstract()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
$classReflection = $this->reflectionResolver->resolveClassReflection($node);
|
||||||
|
if (!$classReflection instanceof ClassReflection) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$interfaces = $classReflection->getInterfaces();
|
||||||
|
foreach ($interfaces as $interface) {
|
||||||
|
if ($interface->hasNativeMethod(MethodName::CONSTRUCT)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
$changedConstructorClassMethod = $this->processRemoveParams($constructorClassMethod);
|
$changedConstructorClassMethod = $this->processRemoveParams($constructorClassMethod);
|
||||||
if (!$changedConstructorClassMethod instanceof ClassMethod) {
|
if (!$changedConstructorClassMethod instanceof ClassMethod) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -19,12 +19,12 @@ final class VersionResolver
|
||||||
* @api
|
* @api
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const PACKAGE_VERSION = 'cd23b1fa90343d4f4b1c8f0d606c0eba8d194597';
|
public const PACKAGE_VERSION = '3e6a4923d463e2a2d104ac283dae04343ee2a2d0';
|
||||||
/**
|
/**
|
||||||
* @api
|
* @api
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const RELEASE_DATE = '2024-03-26 20:16:11';
|
public const RELEASE_DATE = '2024-03-27 22:26:48';
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue