1
0
mirror of https://github.com/rectorphp/rector.git synced 2025-04-17 22:12:44 +02:00

Updated Rector to commit bbe05673172d341c31282b9411290f3a1cebafd2

bbe0567317 [DX] Use type safe access with PrivatePropertyAccessor ()
This commit is contained in:
Tomas Votruba 2022-01-11 15:49:28 +00:00
parent 4b845ca404
commit 5fc2efb4ad
7 changed files with 32 additions and 28 deletions
packages/NodeTypeResolver/PHPStan/Scope
rules/TypeDeclaration
src/Application
vendor

@ -12,10 +12,13 @@ use PhpParser\NodeTraverser;
use PHPStan\AnalysedCodeException;
use PHPStan\Analyser\MutatingScope;
use PHPStan\Analyser\NodeScopeResolver;
use PHPStan\Analyser\ScopeContext;
use PHPStan\BetterReflection\Reflector\Reflector;
use PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator;
use PHPStan\BetterReflection\SourceLocator\Type\SourceLocator;
use PHPStan\Node\UnreachableStatementNode;
use PHPStan\Reflection\BetterReflection\Reflector\MemoizingReflector;
use PHPStan\Reflection\ClassReflection;
use PHPStan\Reflection\ReflectionProvider;
use Rector\Caching\Detector\ChangedFilesDetector;
use Rector\Caching\FileSystem\DependencyResolver;
@ -113,10 +116,10 @@ final class PHPStanNodeScopeResolver
$traitName = $this->resolveClassName($node);
$traitReflectionClass = $this->reflectionProvider->getClass($traitName);
$traitScope = clone $scope;
$scopeContext = $this->privatesAccessor->getPrivateProperty($traitScope, self::CONTEXT);
$scopeContext = $this->privatesAccessor->getPrivatePropertyOfClass($traitScope, self::CONTEXT, \PHPStan\Analyser\ScopeContext::class);
$traitContext = clone $scopeContext;
$this->privatesAccessor->setPrivateProperty($traitContext, 'classReflection', $traitReflectionClass);
$this->privatesAccessor->setPrivateProperty($traitScope, self::CONTEXT, $traitContext);
$this->privatesAccessor->setPrivatePropertyOfClass($traitContext, 'classReflection', $traitReflectionClass, \PHPStan\Reflection\ClassReflection::class);
$this->privatesAccessor->setPrivatePropertyOfClass($traitScope, self::CONTEXT, $traitContext, \PHPStan\Analyser\ScopeContext::class);
$this->nodeScopeResolver->processNodes($node->stmts, $traitScope, $nodeCallback);
return;
}
@ -213,12 +216,12 @@ final class PHPStanNodeScopeResolver
{
// 1. get PHPStan locator
/** @var MemoizingReflector $classReflector */
$classReflector = $this->privatesAccessor->getPrivateProperty($nodeScopeResolver, 'reflector');
$reflector = $this->privatesAccessor->getPrivateProperty($classReflector, 'reflector');
$classReflector = $this->privatesAccessor->getPrivatePropertyOfClass($nodeScopeResolver, 'reflector', \PHPStan\BetterReflection\Reflector\Reflector::class);
$reflector = $this->privatesAccessor->getPrivatePropertyOfClass($classReflector, 'reflector', \PHPStan\BetterReflection\Reflector\Reflector::class);
/** @var SourceLocator $sourceLocator */
$sourceLocator = $this->privatesAccessor->getPrivateProperty($reflector, 'sourceLocator');
$sourceLocator = $this->privatesAccessor->getPrivatePropertyOfClass($reflector, 'sourceLocator', \PHPStan\BetterReflection\SourceLocator\Type\SourceLocator::class);
// 2. get Rector locator
$aggregateSourceLocator = new \PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator([$sourceLocator, $this->renamedClassesSourceLocator, $this->parentAttributeSourceLocator]);
$this->privatesAccessor->setPrivateProperty($reflector, 'sourceLocator', $aggregateSourceLocator);
$this->privatesAccessor->setPrivatePropertyOfClass($reflector, 'sourceLocator', $aggregateSourceLocator, \PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator::class);
}
}

@ -93,9 +93,10 @@ final class TypeNormalizer
{
return \PHPStan\Type\TypeTraverser::map($type, function (\PHPStan\Type\Type $traversedType, callable $traverserCallable) : Type {
if ($this->isConstantArrayNever($traversedType)) {
\assert($traversedType instanceof \PHPStan\Type\Constant\ConstantArrayType);
// not sure why, but with direct new node everything gets nulled to MixedType
$this->privatesAccessor->setPrivateProperty($traversedType, 'keyType', new \PHPStan\Type\MixedType());
$this->privatesAccessor->setPrivateProperty($traversedType, 'itemType', new \PHPStan\Type\MixedType());
$this->privatesAccessor->setPrivatePropertyOfClass($traversedType, 'keyType', new \PHPStan\Type\MixedType(), \PHPStan\Type\Type::class);
$this->privatesAccessor->setPrivatePropertyOfClass($traversedType, 'itemType', new \PHPStan\Type\MixedType(), \PHPStan\Type\Type::class);
return $traversedType;
}
if ($traversedType instanceof \PHPStan\Type\UnionType) {

@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = 'fb76afb25c5046c44f00f61f27ab7cd13222d9ce';
public const PACKAGE_VERSION = 'bbe05673172d341c31282b9411290f3a1cebafd2';
/**
* @var string
*/
public const RELEASE_DATE = '2022-01-11 16:20:19';
public const RELEASE_DATE = '2022-01-11 16:41:23';
public static function resolvePackageVersion() : string
{
$process = new \RectorPrefix20220111\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);

2
vendor/autoload.php vendored

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

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3
class ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f
{
private static $loader;
@ -22,15 +22,15 @@ class ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', '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\ComposerStaticInita55df5c2fec850229ff75d22eff6c8d3::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
@ -42,12 +42,12 @@ class ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInita55df5c2fec850229ff75d22eff6c8d3::$files;
$includeFiles = Composer\Autoload\ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequirea55df5c2fec850229ff75d22eff6c8d3($fileIdentifier, $file);
composerRequire2dca741eb5e08a171c3337652f0f3f2f($fileIdentifier, $file);
}
return $loader;
@ -59,7 +59,7 @@ class ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3
* @param string $file
* @return void
*/
function composerRequirea55df5c2fec850229ff75d22eff6c8d3($fileIdentifier, $file)
function composerRequire2dca741eb5e08a171c3337652f0f3f2f($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInita55df5c2fec850229ff75d22eff6c8d3
class ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f
{
public static $files = array (
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
@ -3858,9 +3858,9 @@ class ComposerStaticInita55df5c2fec850229ff75d22eff6c8d3
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInita55df5c2fec850229ff75d22eff6c8d3::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInita55df5c2fec850229ff75d22eff6c8d3::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInita55df5c2fec850229ff75d22eff6c8d3::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$classMap;
}, null, ClassLoader::class);
}

@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php';
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
spl_autoload_call('RectorPrefix20220111\AutoloadIncluder');
}
if (!class_exists('ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3', false) && !interface_exists('ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3', false) && !trait_exists('ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3', false)) {
spl_autoload_call('RectorPrefix20220111\ComposerAutoloaderInita55df5c2fec850229ff75d22eff6c8d3');
if (!class_exists('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', false) && !interface_exists('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', false) && !trait_exists('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', false)) {
spl_autoload_call('RectorPrefix20220111\ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f');
}
if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) {
spl_autoload_call('RectorPrefix20220111\Helmich\TypoScriptParser\Parser\AST\Statement');
@ -71,9 +71,9 @@ if (!function_exists('print_node')) {
return \RectorPrefix20220111\print_node(...func_get_args());
}
}
if (!function_exists('composerRequirea55df5c2fec850229ff75d22eff6c8d3')) {
function composerRequirea55df5c2fec850229ff75d22eff6c8d3() {
return \RectorPrefix20220111\composerRequirea55df5c2fec850229ff75d22eff6c8d3(...func_get_args());
if (!function_exists('composerRequire2dca741eb5e08a171c3337652f0f3f2f')) {
function composerRequire2dca741eb5e08a171c3337652f0f3f2f() {
return \RectorPrefix20220111\composerRequire2dca741eb5e08a171c3337652f0f3f2f(...func_get_args());
}
}
if (!function_exists('scanPath')) {