Updated Rector to commit 396f1989b8605b261cfdfebe45ee855e9fb70ac4

396f1989b8 [DeadCode] Skip count() on mixed on RemoveUnusedNonEmptyArrayBeforeForeachRector (#5160)
This commit is contained in:
Tomas Votruba 2023-10-13 14:40:44 +00:00
parent 16cc61e430
commit d06e2fcb41
2 changed files with 19 additions and 4 deletions

View File

@ -10,8 +10,10 @@ use PhpParser\Node\Expr\BinaryOp\Smaller;
use PhpParser\Node\Expr\BinaryOp\SmallerOrEqual;
use PhpParser\Node\Expr\FuncCall;
use PhpParser\Node\Scalar\LNumber;
use PHPStan\Type\NeverType;
use Rector\Core\PhpParser\Comparing\NodeComparator;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\NodeTypeResolver\NodeTypeResolver;
final class CountManipulator
{
/**
@ -24,10 +26,16 @@ final class CountManipulator
* @var \Rector\Core\PhpParser\Comparing\NodeComparator
*/
private $nodeComparator;
public function __construct(NodeNameResolver $nodeNameResolver, NodeComparator $nodeComparator)
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeResolver
*/
private $nodeTypeResolver;
public function __construct(NodeNameResolver $nodeNameResolver, NodeComparator $nodeComparator, NodeTypeResolver $nodeTypeResolver)
{
$this->nodeNameResolver = $nodeNameResolver;
$this->nodeComparator = $nodeComparator;
$this->nodeTypeResolver = $nodeTypeResolver;
}
public function isCounterHigherThanOne(Expr $firstExpr, Expr $secondExpr) : bool
{
@ -99,6 +107,13 @@ final class CountManipulator
return \false;
}
$countedExpr = $node->getArgs()[0]->value;
return $this->nodeComparator->areNodesEqual($countedExpr, $expr);
if ($this->nodeComparator->areNodesEqual($countedExpr, $expr)) {
$exprType = $this->nodeTypeResolver->getNativeType($expr);
if (!$exprType->isArray()->yes()) {
return $exprType instanceof NeverType;
}
return \true;
}
return \false;
}
}

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = '2efd6d56a9499be0a210a89cdd1883c6a21f83f8';
public const PACKAGE_VERSION = '396f1989b8605b261cfdfebe45ee855e9fb70ac4';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2023-10-13 20:55:58';
public const RELEASE_DATE = '2023-10-13 21:36:46';
/**
* @var int
*/