Updated Rector to commit d808426e71

d808426e71 [Naming] Add CLASS_MAP_FILES option + fix missing about-to-be-renamed renamed classes with custom SourceLocator (#303)
This commit is contained in:
Tomas Votruba 2021-06-26 18:33:28 +00:00
parent 148ac4692c
commit 6c8071d20a
14 changed files with 157 additions and 91 deletions

View File

@ -18,6 +18,7 @@ use Rector\Core\Reflection\ReflectionResolver;
use Rector\Core\ValueObject\MethodName;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\NodeTypeResolver\Node\AttributeKey;
use ReflectionMethod;
final class MethodParameterTypeResolver
{
/**
@ -98,7 +99,7 @@ final class MethodParameterTypeResolver
$parameterNames = [];
foreach ($classes as $class) {
$constructMethodReflection = $this->reflectionResolver->resolveNativeClassMethodReflection($class, \Rector\Core\ValueObject\MethodName::CONSTRUCT);
if ($constructMethodReflection === null) {
if (!$constructMethodReflection instanceof \ReflectionMethod) {
continue;
}
foreach ($constructMethodReflection->getParameters() as $reflectionParameter) {

View File

@ -13,17 +13,20 @@ use PHPStan\AnalysedCodeException;
use PHPStan\Analyser\MutatingScope;
use PHPStan\Analyser\NodeScopeResolver;
use PHPStan\Analyser\Scope;
use PHPStan\BetterReflection\Reflector\Exception\IdentifierNotFound;
use PHPStan\BetterReflection\Reflector\ClassReflector;
use PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator;
use PHPStan\BetterReflection\SourceLocator\Type\SourceLocator;
use PHPStan\Node\UnreachableStatementNode;
use PHPStan\Reflection\ClassReflection;
use PHPStan\Reflection\ReflectionProvider;
use Rector\Caching\Detector\ChangedFilesDetector;
use Rector\Caching\FileSystem\DependencyResolver;
use Rector\Core\Configuration\RenamedClassesDataCollector;
use Rector\Core\Exception\ShouldNotHappenException;
use Rector\Core\StaticReflection\SourceLocator\RenamedClassesSourceLocator;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\NodeTypeResolver\PHPStan\Collector\TraitNodeScopeCollector;
use Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor\RemoveDeepChainMethodCallNodeVisitor;
use RectorPrefix20210626\Symplify\PackageBuilder\Reflection\PrivatesAccessor;
use Symplify\SmartFileSystem\SmartFileInfo;
/**
* @inspired by https://github.com/silverstripe/silverstripe-upgrader/blob/532182b23e854d02e0b27e68ebc394f436de0682/src/UpgradeRule/PHP/Visitor/PHPStanScopeVisitor.php
@ -65,10 +68,14 @@ final class PHPStanNodeScopeResolver
*/
private $traitNodeScopeCollector;
/**
* @var \Rector\Core\Configuration\RenamedClassesDataCollector
* @var \Symplify\PackageBuilder\Reflection\PrivatesAccessor
*/
private $renamedClassesDataCollector;
public function __construct(\Rector\Caching\Detector\ChangedFilesDetector $changedFilesDetector, \Rector\Caching\FileSystem\DependencyResolver $dependencyResolver, \PHPStan\Analyser\NodeScopeResolver $nodeScopeResolver, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor\RemoveDeepChainMethodCallNodeVisitor $removeDeepChainMethodCallNodeVisitor, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, \Rector\NodeTypeResolver\PHPStan\Collector\TraitNodeScopeCollector $traitNodeScopeCollector, \Rector\Core\Configuration\RenamedClassesDataCollector $renamedClassesDataCollector)
private $privatesAccessor;
/**
* @var \Rector\Core\StaticReflection\SourceLocator\RenamedClassesSourceLocator
*/
private $renamedClassesSourceLocator;
public function __construct(\Rector\Caching\Detector\ChangedFilesDetector $changedFilesDetector, \Rector\Caching\FileSystem\DependencyResolver $dependencyResolver, \PHPStan\Analyser\NodeScopeResolver $nodeScopeResolver, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor\RemoveDeepChainMethodCallNodeVisitor $removeDeepChainMethodCallNodeVisitor, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, \Rector\NodeTypeResolver\PHPStan\Collector\TraitNodeScopeCollector $traitNodeScopeCollector, \RectorPrefix20210626\Symplify\PackageBuilder\Reflection\PrivatesAccessor $privatesAccessor, \Rector\Core\StaticReflection\SourceLocator\RenamedClassesSourceLocator $renamedClassesSourceLocator)
{
$this->changedFilesDetector = $changedFilesDetector;
$this->dependencyResolver = $dependencyResolver;
@ -77,7 +84,8 @@ final class PHPStanNodeScopeResolver
$this->removeDeepChainMethodCallNodeVisitor = $removeDeepChainMethodCallNodeVisitor;
$this->scopeFactory = $scopeFactory;
$this->traitNodeScopeCollector = $traitNodeScopeCollector;
$this->renamedClassesDataCollector = $renamedClassesDataCollector;
$this->privatesAccessor = $privatesAccessor;
$this->renamedClassesSourceLocator = $renamedClassesSourceLocator;
}
/**
* @param Stmt[] $nodes
@ -112,12 +120,8 @@ final class PHPStanNodeScopeResolver
$node->setAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::SCOPE, $scope);
}
};
try {
/** @var MutatingScope $scope */
$this->nodeScopeResolver->processNodes($nodes, $scope, $nodeCallback);
} catch (\PHPStan\BetterReflection\Reflector\Exception\IdentifierNotFound $identifierNotFound) {
$this->reportOrSkip($identifierNotFound);
}
$this->decoratePHPStanNodeScopeResolverWithRenamedClassSourceLocator($this->nodeScopeResolver);
$this->nodeScopeResolver->processNodes($nodes, $scope, $nodeCallback);
$this->resolveAndSaveDependentFiles($nodes, $scope, $smartFileInfo);
return $nodes;
}
@ -183,13 +187,15 @@ final class PHPStanNodeScopeResolver
* That's why we have to skip fatal errors of PHPStan caused by missing class,
* so Rector can fix it first. Then run Rector again to refactor code with new classes.
*/
private function reportOrSkip(\PHPStan\BetterReflection\Reflector\Exception\IdentifierNotFound $identifierNotFound) : void
private function decoratePHPStanNodeScopeResolverWithRenamedClassSourceLocator(\PHPStan\Analyser\NodeScopeResolver $nodeScopeResolver) : void
{
foreach ($this->renamedClassesDataCollector->getOldClasses() as $oldClass) {
if (\strpos($identifierNotFound->getMessage(), $oldClass) !== \false) {
return;
}
}
throw $identifierNotFound;
// 1. get PHPStan locator
/** @var ClassReflector $classReflector */
$classReflector = $this->privatesAccessor->getPrivateProperty($nodeScopeResolver, 'classReflector');
/** @var SourceLocator $sourceLocator */
$sourceLocator = $this->privatesAccessor->getPrivateProperty($classReflector, 'sourceLocator');
// 2. get Rector locator
$aggregateSourceLocator = new \PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator([$sourceLocator, $this->renamedClassesSourceLocator]);
$this->privatesAccessor->setPrivateProperty($classReflector, 'sourceLocator', $aggregateSourceLocator);
}
}

View File

@ -10,10 +10,10 @@ use PhpParser\Node\Stmt\ClassMethod;
use PHPStan\Reflection\MethodReflection;
use PHPStan\Type\TypeWithClassName;
use Rector\Core\PHPStan\Reflection\CallReflectionResolver;
use Rector\Core\PHPStan\Reflection\ClassMethodReflectionResolver;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\Reflection\ReflectionResolver;
use Rector\Core\ValueObject\MethodName;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\Php80\NodeResolver\ArgumentSorter;
use Rector\Php80\NodeResolver\RequireOptionalParamResolver;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
@ -37,20 +37,15 @@ final class OptionalParametersAfterRequiredRector extends \Rector\Core\Rector\Ab
* @var \Rector\Core\PHPStan\Reflection\CallReflectionResolver
*/
private $callReflectionResolver;
/**
* @var \Rector\Core\PHPStan\Reflection\ClassMethodReflectionResolver
*/
private $classMethodReflectionResolver;
/**
* @var \Rector\Core\Reflection\ReflectionResolver
*/
private $reflectionResolver;
public function __construct(\Rector\Php80\NodeResolver\RequireOptionalParamResolver $requireOptionalParamResolver, \Rector\Php80\NodeResolver\ArgumentSorter $argumentSorter, \Rector\Core\PHPStan\Reflection\CallReflectionResolver $callReflectionResolver, \Rector\Core\PHPStan\Reflection\ClassMethodReflectionResolver $classMethodReflectionResolver, \Rector\Core\Reflection\ReflectionResolver $reflectionResolver)
public function __construct(\Rector\Php80\NodeResolver\RequireOptionalParamResolver $requireOptionalParamResolver, \Rector\Php80\NodeResolver\ArgumentSorter $argumentSorter, \Rector\Core\PHPStan\Reflection\CallReflectionResolver $callReflectionResolver, \Rector\Core\Reflection\ReflectionResolver $reflectionResolver)
{
$this->requireOptionalParamResolver = $requireOptionalParamResolver;
$this->argumentSorter = $argumentSorter;
$this->callReflectionResolver = $callReflectionResolver;
$this->classMethodReflectionResolver = $classMethodReflectionResolver;
$this->reflectionResolver = $reflectionResolver;
}
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
@ -98,10 +93,20 @@ CODE_SAMPLE
if ($classMethod->params === []) {
return null;
}
$classMethodReflection = $this->classMethodReflectionResolver->resolve($classMethod);
$classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NAME);
$classMethodReflection = $this->reflectionResolver->resolveMethodReflectionFromClassMethod($classMethod);
if (!$classMethodReflection instanceof \PHPStan\Reflection\MethodReflection) {
return null;
}
$classReflection = $classMethodReflection->getDeclaringClass();
$fileName = $classReflection->getFileName();
// probably internal class
if ($fileName === \false) {
return null;
}
if (\strpos($fileName, '/vendor/') !== \false) {
return null;
}
$parametersAcceptor = $classMethodReflection->getVariants()[0];
$expectedOrderParameterReflections = $this->requireOptionalParamResolver->resolveFromReflection($classMethodReflection);
if ($parametersAcceptor->getParameters() === $expectedOrderParameterReflections) {
@ -124,6 +129,15 @@ CODE_SAMPLE
if (!$methodReflection instanceof \PHPStan\Reflection\MethodReflection) {
return null;
}
$classReflection = $methodReflection->getDeclaringClass();
$fileName = $classReflection->getFileName();
// probably internal class
if ($fileName === \false) {
return null;
}
if (\strpos($fileName, '/vendor/') !== \false) {
return null;
}
$parametersAcceptor = $methodReflection->getVariants()[0];
$expectedOrderedParameterReflections = $this->requireOptionalParamResolver->resolveFromReflection($methodReflection);
if ($expectedOrderedParameterReflections === $parametersAcceptor->getParameters()) {

View File

@ -17,6 +17,7 @@ use Rector\Core\Rector\AbstractRector;
use Rector\Renaming\NodeManipulator\ClassRenamer;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use RectorPrefix20210626\Webmozart\Assert\Assert;
/**
* @see \Rector\Tests\Renaming\Rector\Name\RenameClassRector\RenameClassRectorTest
*/
@ -27,9 +28,10 @@ final class RenameClassRector extends \Rector\Core\Rector\AbstractRector impleme
*/
public const OLD_TO_NEW_CLASSES = 'old_to_new_classes';
/**
* @var array<string, string>
* @api
* @var string
*/
private $oldToNewClasses = [];
public const CLASS_MAP_FILES = 'class_map_files';
/**
* @var \Rector\Core\Configuration\RenamedClassesDataCollector
*/
@ -83,15 +85,30 @@ CODE_SAMPLE
*/
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
{
return $this->classRenamer->renameNode($node, $this->oldToNewClasses);
$oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses();
return $this->classRenamer->renameNode($node, $oldToNewClasses);
}
/**
* @param array<string, array<string, string>> $configuration
*/
public function configure(array $configuration) : void
{
$oldToNewClasses = $configuration[self::OLD_TO_NEW_CLASSES] ?? [];
$this->addOldToNewClasses($configuration[self::OLD_TO_NEW_CLASSES] ?? []);
$classMapFiles = $configuration[self::CLASS_MAP_FILES] ?? [];
\RectorPrefix20210626\Webmozart\Assert\Assert::allString($classMapFiles);
foreach ($classMapFiles as $classMapFile) {
\RectorPrefix20210626\Webmozart\Assert\Assert::fileExists($classMapFile);
$oldToNewClasses = (require_once $classMapFile);
$this->addOldToNewClasses($oldToNewClasses);
}
}
/**
* @param array<string, string> $oldToNewClasses
*/
private function addOldToNewClasses(array $oldToNewClasses) : void
{
\RectorPrefix20210626\Webmozart\Assert\Assert::allString(\array_keys($oldToNewClasses));
\RectorPrefix20210626\Webmozart\Assert\Assert::allString($oldToNewClasses);
$this->renamedClassesDataCollector->addOldToNewClasses($oldToNewClasses);
$this->oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses();
}
}

View File

@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = '564cc84d93e63be6f13a7abaf3aa1fc9018e14ca';
public const PACKAGE_VERSION = 'd808426e719d4667ed39d3b074e44f4eaa18d464';
/**
* @var string
*/
public const RELEASE_DATE = '2021-06-26 16:45:40';
public const RELEASE_DATE = '2021-06-26 20:19:18';
public static function resolvePackageVersion() : string
{
$process = new \RectorPrefix20210626\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);

View File

@ -1,36 +0,0 @@
<?php
declare (strict_types=1);
namespace Rector\Core\PHPStan\Reflection;
use PhpParser\Node\Stmt\ClassMethod;
use PHPStan\Reflection\MethodReflection;
use PHPStan\Reflection\ReflectionProvider;
use Rector\NodeTypeResolver\Node\AttributeKey;
final class ClassMethodReflectionResolver
{
/**
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
public function __construct(\PHPStan\Reflection\ReflectionProvider $reflectionProvider)
{
$this->reflectionProvider = $reflectionProvider;
}
public function resolve(\PhpParser\Node\Stmt\ClassMethod $classMethod) : ?\PHPStan\Reflection\MethodReflection
{
$className = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NAME);
if ($className === null) {
return null;
}
if (!$this->reflectionProvider->hasClass($className)) {
return null;
}
$classReflection = $this->reflectionProvider->getClass($className);
$methodName = $classMethod->name->toString();
if (!$classReflection->hasMethod($methodName)) {
return null;
}
return $classReflection->getNativeMethod($methodName);
}
}

View File

@ -178,7 +178,7 @@ final class AstResolver
public function resolveClassMethod(string $className, string $methodName) : ?\PhpParser\Node\Stmt\ClassMethod
{
$methodReflection = $this->reflectionResolver->resolveMethodReflection($className, $methodName);
if ($methodReflection === null) {
if (!$methodReflection instanceof \PHPStan\Reflection\MethodReflection) {
return null;
}
return $this->resolveClassMethodFromMethodReflection($methodReflection);

View File

@ -5,12 +5,15 @@ namespace Rector\Core\Reflection;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\StaticCall;
use PhpParser\Node\Stmt\ClassMethod;
use PHPStan\Reflection\MethodReflection;
use PHPStan\Reflection\ReflectionProvider;
use PHPStan\Type\TypeUtils;
use PHPStan\Type\TypeWithClassName;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\NodeTypeResolver\NodeTypeResolver;
use ReflectionMethod;
final class ReflectionResolver
{
/**
@ -86,4 +89,13 @@ final class ReflectionResolver
}
return $this->resolveMethodReflection($callerType->getClassName(), $methodName);
}
public function resolveMethodReflectionFromClassMethod(\PhpParser\Node\Stmt\ClassMethod $classMethod) : ?\PHPStan\Reflection\MethodReflection
{
$class = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NAME);
if ($class === null) {
return null;
}
$methodName = $this->nodeNameResolver->getName($classMethod);
return $this->resolveMethodReflection($class, $methodName);
}
}

View File

@ -0,0 +1,52 @@
<?php
declare (strict_types=1);
namespace Rector\Core\StaticReflection\SourceLocator;
use PHPStan\BetterReflection\Identifier\Identifier;
use PHPStan\BetterReflection\Identifier\IdentifierType;
use PHPStan\BetterReflection\Reflection\Reflection;
use PHPStan\BetterReflection\Reflection\ReflectionClass;
use PHPStan\BetterReflection\Reflector\ClassReflector;
use PHPStan\BetterReflection\Reflector\Reflector;
use PHPStan\BetterReflection\SourceLocator\Located\LocatedSource;
use PHPStan\BetterReflection\SourceLocator\Type\SourceLocator;
use Rector\Core\Configuration\RenamedClassesDataCollector;
use RectorPrefix20210626\Symplify\Astral\ValueObject\NodeBuilder\ClassBuilder;
/**
* Inspired from \PHPStan\BetterReflection\SourceLocator\Type\StringSourceLocator
*/
final class RenamedClassesSourceLocator implements \PHPStan\BetterReflection\SourceLocator\Type\SourceLocator
{
/**
* @var \Rector\Core\Configuration\RenamedClassesDataCollector
*/
private $renamedClassesDataCollector;
public function __construct(\Rector\Core\Configuration\RenamedClassesDataCollector $renamedClassesDataCollector)
{
$this->renamedClassesDataCollector = $renamedClassesDataCollector;
}
public function locateIdentifier(\PHPStan\BetterReflection\Reflector\Reflector $reflector, \PHPStan\BetterReflection\Identifier\Identifier $identifier) : ?\PHPStan\BetterReflection\Reflection\Reflection
{
foreach ($this->renamedClassesDataCollector->getOldToNewClasses() as $oldClass => $newClass) {
if ($identifier->getName() !== $oldClass) {
continue;
}
// inspired at https://github.com/phpstan/phpstan-src/blob/a9dd9af959fb0c1e0a09d4850f78e05e8dff3d91/src/Reflection/BetterReflection/BetterReflectionProvider.php#L220-L225
return $this->createFakeReflectionClassFromClassName($oldClass);
}
return null;
}
public function locateIdentifiersByType(\PHPStan\BetterReflection\Reflector\Reflector $reflector, \PHPStan\BetterReflection\Identifier\IdentifierType $identifierType) : array
{
return [];
}
private function createFakeReflectionClassFromClassName(string $oldClass) : \PHPStan\BetterReflection\Reflection\ReflectionClass
{
$classBuilder = new \RectorPrefix20210626\Symplify\Astral\ValueObject\NodeBuilder\ClassBuilder($oldClass);
$class = $classBuilder->getNode();
$fakeLocatedSource = new \PHPStan\BetterReflection\SourceLocator\Located\LocatedSource('virtual', null);
$classReflector = new \PHPStan\BetterReflection\Reflector\ClassReflector($this);
return \PHPStan\BetterReflection\Reflection\ReflectionClass::createFromNode($classReflector, $class, $fakeLocatedSource);
}
}

2
vendor/autoload.php vendored
View File

@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1::getLoader();
return ComposerAutoloaderInit9dadfc9f511da939b43021027e711285::getLoader();

View File

@ -1863,7 +1863,6 @@ return array(
'Rector\\Core\\NonPhpFile\\NonPhpFileProcessor' => $baseDir . '/src/NonPhpFile/NonPhpFileProcessor.php',
'Rector\\Core\\NonPhpFile\\Rector\\RenameClassNonPhpRector' => $baseDir . '/src/NonPhpFile/Rector/RenameClassNonPhpRector.php',
'Rector\\Core\\PHPStan\\Reflection\\CallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/CallReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\ClassMethodReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/ClassMethodReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ClosureTypeToCallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantArrayTypeToCallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantStringTypeToCallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php',
@ -1903,6 +1902,7 @@ return array(
'Rector\\Core\\Reflection\\ReflectionResolver' => $baseDir . '/src/Reflection/ReflectionResolver.php',
'Rector\\Core\\Reporting\\MissingRectorRulesReporter' => $baseDir . '/src/Reporting/MissingRectorRulesReporter.php',
'Rector\\Core\\StaticReflection\\DynamicSourceLocatorDecorator' => $baseDir . '/src/StaticReflection/DynamicSourceLocatorDecorator.php',
'Rector\\Core\\StaticReflection\\SourceLocator\\RenamedClassesSourceLocator' => $baseDir . '/src/StaticReflection/SourceLocator/RenamedClassesSourceLocator.php',
'Rector\\Core\\Stubs\\PHPStanStubLoader' => $baseDir . '/src/Stubs/PHPStanStubLoader.php',
'Rector\\Core\\Template\\DefaultResolver' => $baseDir . '/src/Template/DefaultResolver.php',
'Rector\\Core\\Util\\PhpVersionFactory' => $baseDir . '/src/Util/PhpVersionFactory.php',

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1
class ComposerAutoloaderInit9dadfc9f511da939b43021027e711285
{
private static $loader;
@ -22,15 +22,15 @@ class ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit9dadfc9f511da939b43021027e711285', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit9dadfc9f511da939b43021027e711285', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit1af7ca865592604b0098412dd48553a1::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit9dadfc9f511da939b43021027e711285::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
@ -42,19 +42,19 @@ class ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit1af7ca865592604b0098412dd48553a1::$files;
$includeFiles = Composer\Autoload\ComposerStaticInit9dadfc9f511da939b43021027e711285::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire1af7ca865592604b0098412dd48553a1($fileIdentifier, $file);
composerRequire9dadfc9f511da939b43021027e711285($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequire1af7ca865592604b0098412dd48553a1($fileIdentifier, $file)
function composerRequire9dadfc9f511da939b43021027e711285($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInit1af7ca865592604b0098412dd48553a1
class ComposerStaticInit9dadfc9f511da939b43021027e711285
{
public static $files = array (
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
@ -2213,7 +2213,6 @@ class ComposerStaticInit1af7ca865592604b0098412dd48553a1
'Rector\\Core\\NonPhpFile\\NonPhpFileProcessor' => __DIR__ . '/../..' . '/src/NonPhpFile/NonPhpFileProcessor.php',
'Rector\\Core\\NonPhpFile\\Rector\\RenameClassNonPhpRector' => __DIR__ . '/../..' . '/src/NonPhpFile/Rector/RenameClassNonPhpRector.php',
'Rector\\Core\\PHPStan\\Reflection\\CallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/CallReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\ClassMethodReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/ClassMethodReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ClosureTypeToCallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantArrayTypeToCallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php',
'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantStringTypeToCallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php',
@ -2253,6 +2252,7 @@ class ComposerStaticInit1af7ca865592604b0098412dd48553a1
'Rector\\Core\\Reflection\\ReflectionResolver' => __DIR__ . '/../..' . '/src/Reflection/ReflectionResolver.php',
'Rector\\Core\\Reporting\\MissingRectorRulesReporter' => __DIR__ . '/../..' . '/src/Reporting/MissingRectorRulesReporter.php',
'Rector\\Core\\StaticReflection\\DynamicSourceLocatorDecorator' => __DIR__ . '/../..' . '/src/StaticReflection/DynamicSourceLocatorDecorator.php',
'Rector\\Core\\StaticReflection\\SourceLocator\\RenamedClassesSourceLocator' => __DIR__ . '/../..' . '/src/StaticReflection/SourceLocator/RenamedClassesSourceLocator.php',
'Rector\\Core\\Stubs\\PHPStanStubLoader' => __DIR__ . '/../..' . '/src/Stubs/PHPStanStubLoader.php',
'Rector\\Core\\Template\\DefaultResolver' => __DIR__ . '/../..' . '/src/Template/DefaultResolver.php',
'Rector\\Core\\Util\\PhpVersionFactory' => __DIR__ . '/../..' . '/src/Util/PhpVersionFactory.php',
@ -3834,9 +3834,9 @@ class ComposerStaticInit1af7ca865592604b0098412dd48553a1
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit1af7ca865592604b0098412dd48553a1::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit1af7ca865592604b0098412dd48553a1::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit1af7ca865592604b0098412dd48553a1::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit9dadfc9f511da939b43021027e711285::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit9dadfc9f511da939b43021027e711285::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit9dadfc9f511da939b43021027e711285::$classMap;
}, null, ClassLoader::class);
}

View File

@ -21,8 +21,8 @@ if (!class_exists('SomeTestCase', false) && !interface_exists('SomeTestCase', fa
if (!class_exists('CheckoutEntityFactory', false) && !interface_exists('CheckoutEntityFactory', false) && !trait_exists('CheckoutEntityFactory', false)) {
spl_autoload_call('RectorPrefix20210626\CheckoutEntityFactory');
}
if (!class_exists('ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1', false) && !interface_exists('ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1', false) && !trait_exists('ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1', false)) {
spl_autoload_call('RectorPrefix20210626\ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1');
if (!class_exists('ComposerAutoloaderInit9dadfc9f511da939b43021027e711285', false) && !interface_exists('ComposerAutoloaderInit9dadfc9f511da939b43021027e711285', false) && !trait_exists('ComposerAutoloaderInit9dadfc9f511da939b43021027e711285', false)) {
spl_autoload_call('RectorPrefix20210626\ComposerAutoloaderInit9dadfc9f511da939b43021027e711285');
}
if (!class_exists('Doctrine\Inflector\Inflector', false) && !interface_exists('Doctrine\Inflector\Inflector', false) && !trait_exists('Doctrine\Inflector\Inflector', false)) {
spl_autoload_call('RectorPrefix20210626\Doctrine\Inflector\Inflector');
@ -3320,9 +3320,9 @@ if (!function_exists('print_node')) {
return \RectorPrefix20210626\print_node(...func_get_args());
}
}
if (!function_exists('composerRequire1af7ca865592604b0098412dd48553a1')) {
function composerRequire1af7ca865592604b0098412dd48553a1() {
return \RectorPrefix20210626\composerRequire1af7ca865592604b0098412dd48553a1(...func_get_args());
if (!function_exists('composerRequire9dadfc9f511da939b43021027e711285')) {
function composerRequire9dadfc9f511da939b43021027e711285() {
return \RectorPrefix20210626\composerRequire9dadfc9f511da939b43021027e711285(...func_get_args());
}
}
if (!function_exists('parseArgs')) {