mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-03 18:00:50 +00:00
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:
parent
148ac4692c
commit
6c8071d20a
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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__);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
2
vendor/autoload.php
vendored
|
@ -4,4 +4,4 @@
|
|||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit1af7ca865592604b0098412dd48553a1::getLoader();
|
||||
return ComposerAutoloaderInit9dadfc9f511da939b43021027e711285::getLoader();
|
||||
|
|
2
vendor/composer/autoload_classmap.php
vendored
2
vendor/composer/autoload_classmap.php
vendored
|
@ -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',
|
||||
|
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
|
@ -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;
|
||||
|
|
10
vendor/composer/autoload_static.php
vendored
10
vendor/composer/autoload_static.php
vendored
|
@ -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);
|
||||
}
|
||||
|
|
10
vendor/scoper-autoload.php
vendored
10
vendor/scoper-autoload.php
vendored
|
@ -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')) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user