Updated Rector to commit 861a8808e7516c74b7e41a884076eac35f60a14f

861a8808e7 [Php82] Skip usage of already RecursiveDirectoryIterator::SKIP_DOTS on FilesystemIteratorSkipDotsRector (#5712)
This commit is contained in:
Tomas Votruba 2024-03-11 03:08:10 +00:00
parent 7660d5730f
commit ecd615137e
3 changed files with 15 additions and 13 deletions

View File

@ -3,7 +3,6 @@
declare (strict_types=1);
namespace Rector\Php82\Rector\New_;
use FilesystemIterator;
use PhpParser\Node;
use PhpParser\Node\Arg;
use PhpParser\Node\Expr;
@ -12,29 +11,29 @@ use PhpParser\Node\Expr\ClassConstFetch;
use PhpParser\Node\Expr\New_;
use PhpParser\Node\Name\FullyQualified;
use PHPStan\Type\ObjectType;
use Rector\NodeNameResolver\NodeNameResolver\ClassConstFetchNameResolver;
use Rector\PhpParser\Node\Value\ValueResolver;
use Rector\Rector\AbstractRector;
use Rector\ValueObject\PhpVersionFeature;
use Rector\VersionBonding\Contract\MinPhpVersionInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @see \Rector\Tests\Php82\Rector\New_\FilesystemIteratorSkipDots\FilesystemIteratorSkipDotsRectorTest
* @see \Rector\Tests\Php82\Rector\New_\FilesystemIteratorSkipDotsRector\FilesystemIteratorSkipDotsRectorTest
*/
final class FilesystemIteratorSkipDotsRector extends AbstractRector implements MinPhpVersionInterface
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver\ClassConstFetchNameResolver
* @var \Rector\PhpParser\Node\Value\ValueResolver
*/
private $classConstFetchNameResolver;
public function __construct(ClassConstFetchNameResolver $classConstFetchNameResolver)
private $valueResolver;
public function __construct(ValueResolver $valueResolver)
{
$this->classConstFetchNameResolver = $classConstFetchNameResolver;
$this->valueResolver = $valueResolver;
}
public function getRuleDefinition() : RuleDefinition
{
return new RuleDefinition('Prior PHP 8.2 FilesystemIterator::SKIP_DOTS was always set and could not be removed, therefore FilesystemIterator::SKIP_DOTS is added in order to keep this behaviour.', [new CodeSample('new ' . FilesystemIterator::class . '(__DIR__, ' . FilesystemIterator::class . '::KEY_AS_FILENAME);', 'new ' . FilesystemIterator::class . '(__DIR__, ' . FilesystemIterator::class . '::KEY_AS_FILENAME | ' . FilesystemIterator::class . '::SKIP_DOTS);')]);
return new RuleDefinition('Prior PHP 8.2 FilesystemIterator::SKIP_DOTS was always set and could not be removed, therefore FilesystemIterator::SKIP_DOTS is added in order to keep this behaviour.', [new CodeSample('new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME);', 'new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::SKIP_DOTS);')]);
}
public function getNodeTypes() : array
{
@ -90,6 +89,10 @@ final class FilesystemIteratorSkipDotsRector extends AbstractRector implements M
// can be anything
return \true;
}
return $this->classConstFetchNameResolver->resolve($expr, null) === 'FilesystemIterator::SKIP_DOTS';
if (!\defined('FilesystemIterator::SKIP_DOTS')) {
return \true;
}
$value = \constant('FilesystemIterator::SKIP_DOTS');
return $this->valueResolver->isValue($expr, $value);
}
}

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = '8ade0b9e46aff3e6f755a9561579cdc0c9eb9b0e';
public const PACKAGE_VERSION = '861a8808e7516c74b7e41a884076eac35f60a14f';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2024-03-11 09:21:31';
public const RELEASE_DATE = '2024-03-11 10:05:54';
/**
* @var int
*/

View File

@ -3,7 +3,6 @@
declare (strict_types=1);
namespace Rector\Autoloading;
use FilesystemIterator;
use Rector\Configuration\Option;
use Rector\Configuration\Parameter\SimpleParameterProvider;
use Rector\Exception\ShouldNotHappenException;
@ -40,7 +39,7 @@ final class BootstrapFilesIncluder
if ($stubsRectorDirectory === \false) {
return;
}
$dir = new RecursiveDirectoryIterator($stubsRectorDirectory, RecursiveDirectoryIterator::SKIP_DOTS | FilesystemIterator::SKIP_DOTS);
$dir = new RecursiveDirectoryIterator($stubsRectorDirectory, RecursiveDirectoryIterator::SKIP_DOTS);
/** @var SplFileInfo[] $stubs */
$stubs = new RecursiveIteratorIterator($dir);
foreach ($stubs as $stub) {