Updated Rector to commit bc84defd14b3e96d43a02e7fd6ba43d8a6d26ddd

bc84defd14 [Naming] @param doc should follow variable renamed on RenamePropertyToMatchTypeRector (#170)
This commit is contained in:
Tomas Votruba 2021-06-08 13:00:58 +00:00
parent 5279626eba
commit a36655a228
6 changed files with 54 additions and 23 deletions

View File

@ -10,14 +10,19 @@ use PhpParser\Node\Stmt\ClassLike;
use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\Node\Stmt\Interface_; use PhpParser\Node\Stmt\Interface_;
use PhpParser\Node\Stmt\Property; use PhpParser\Node\Stmt\Property;
use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\Core\Rector\AbstractRector; use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\MethodName; use Rector\Core\ValueObject\MethodName;
use Rector\Core\ValueObject\PhpVersionFeature; use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\Naming\ExpectedNameResolver\MatchParamTypeExpectedNameResolver; use Rector\Naming\ExpectedNameResolver\MatchParamTypeExpectedNameResolver;
use Rector\Naming\ExpectedNameResolver\MatchPropertyTypeExpectedNameResolver; use Rector\Naming\ExpectedNameResolver\MatchPropertyTypeExpectedNameResolver;
use Rector\Naming\ParamRenamer\ParamRenamer;
use Rector\Naming\PropertyRenamer\MatchTypePropertyRenamer; use Rector\Naming\PropertyRenamer\MatchTypePropertyRenamer;
use Rector\Naming\PropertyRenamer\PropertyFetchRenamer; use Rector\Naming\PropertyRenamer\PropertyFetchRenamer;
use Rector\Naming\ValueObject\ParamRename;
use Rector\Naming\ValueObject\PropertyRename; use Rector\Naming\ValueObject\PropertyRename;
use Rector\Naming\ValueObjectFactory\ParamRenameFactory;
use Rector\Naming\ValueObjectFactory\PropertyRenameFactory; use Rector\Naming\ValueObjectFactory\PropertyRenameFactory;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
@ -50,13 +55,23 @@ final class RenamePropertyToMatchTypeRector extends \Rector\Core\Rector\Abstract
* @var \Rector\Naming\PropertyRenamer\PropertyFetchRenamer * @var \Rector\Naming\PropertyRenamer\PropertyFetchRenamer
*/ */
private $propertyFetchRenamer; private $propertyFetchRenamer;
public function __construct(\Rector\Naming\PropertyRenamer\MatchTypePropertyRenamer $matchTypePropertyRenamer, \Rector\Naming\ValueObjectFactory\PropertyRenameFactory $propertyRenameFactory, \Rector\Naming\ExpectedNameResolver\MatchPropertyTypeExpectedNameResolver $matchPropertyTypeExpectedNameResolver, \Rector\Naming\ExpectedNameResolver\MatchParamTypeExpectedNameResolver $matchParamTypeExpectedNameResolver, \Rector\Naming\PropertyRenamer\PropertyFetchRenamer $propertyFetchRenamer) /**
* @var \Rector\Naming\ValueObjectFactory\ParamRenameFactory
*/
private $paramRenameFactory;
/**
* @var \Rector\Naming\ParamRenamer\ParamRenamer
*/
private $paramRenamer;
public function __construct(\Rector\Naming\PropertyRenamer\MatchTypePropertyRenamer $matchTypePropertyRenamer, \Rector\Naming\ValueObjectFactory\PropertyRenameFactory $propertyRenameFactory, \Rector\Naming\ExpectedNameResolver\MatchPropertyTypeExpectedNameResolver $matchPropertyTypeExpectedNameResolver, \Rector\Naming\ExpectedNameResolver\MatchParamTypeExpectedNameResolver $matchParamTypeExpectedNameResolver, \Rector\Naming\PropertyRenamer\PropertyFetchRenamer $propertyFetchRenamer, \Rector\Naming\ValueObjectFactory\ParamRenameFactory $paramRenameFactory, \Rector\Naming\ParamRenamer\ParamRenamer $paramRenamer)
{ {
$this->matchTypePropertyRenamer = $matchTypePropertyRenamer; $this->matchTypePropertyRenamer = $matchTypePropertyRenamer;
$this->propertyRenameFactory = $propertyRenameFactory; $this->propertyRenameFactory = $propertyRenameFactory;
$this->matchPropertyTypeExpectedNameResolver = $matchPropertyTypeExpectedNameResolver; $this->matchPropertyTypeExpectedNameResolver = $matchPropertyTypeExpectedNameResolver;
$this->matchParamTypeExpectedNameResolver = $matchParamTypeExpectedNameResolver; $this->matchParamTypeExpectedNameResolver = $matchParamTypeExpectedNameResolver;
$this->propertyFetchRenamer = $propertyFetchRenamer; $this->propertyFetchRenamer = $propertyFetchRenamer;
$this->paramRenameFactory = $paramRenameFactory;
$this->paramRenamer = $paramRenamer;
} }
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
{ {
@ -151,22 +166,38 @@ CODE_SAMPLE
} }
$desiredPropertyNames[$key] = $desiredPropertyName; $desiredPropertyNames[$key] = $desiredPropertyName;
} }
$this->renameParamVarName($classLike, $constructClassMethod->params, $desiredPropertyNames); $this->renameParamVarName($classLike, $constructClassMethod, $desiredPropertyNames);
} }
/** /**
* @param Param[] $params
* @param string[] $desiredPropertyNames * @param string[] $desiredPropertyNames
*/ */
private function renameParamVarName(\PhpParser\Node\Stmt\ClassLike $classLike, array $params, array $desiredPropertyNames) : void private function renameParamVarName(\PhpParser\Node\Stmt\ClassLike $classLike, \PhpParser\Node\Stmt\ClassMethod $constructClassMethod, array $desiredPropertyNames) : void
{ {
$keys = \array_keys($desiredPropertyNames); $keys = \array_keys($desiredPropertyNames);
$params = $constructClassMethod->params;
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($constructClassMethod);
foreach ($params as $key => $param) { foreach ($params as $key => $param) {
if (\in_array($key, $keys, \true)) { if (\in_array($key, $keys, \true)) {
$currentName = $this->getName($param); $currentName = $this->getName($param);
$desiredPropertyName = $desiredPropertyNames[$key]; $desiredPropertyName = $desiredPropertyNames[$key];
$this->propertyFetchRenamer->renamePropertyFetchesInClass($classLike, $currentName, $desiredPropertyName); $this->propertyFetchRenamer->renamePropertyFetchesInClass($classLike, $currentName, $desiredPropertyName);
/** @var string $paramVarName */
$paramVarName = $param->var->name;
$this->renameParamDoc($phpDocInfo, $param, $paramVarName, $desiredPropertyName);
$param->var->name = $desiredPropertyName; $param->var->name = $desiredPropertyName;
} }
} }
} }
private function renameParamDoc(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo $phpDocInfo, \PhpParser\Node\Param $param, string $paramVarName, string $desiredPropertyName) : void
{
$paramTagValueNode = $phpDocInfo->getParamTagValueNodeByName($paramVarName);
if (!$paramTagValueNode instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode) {
return;
}
$paramRename = $this->paramRenameFactory->createFromResolvedExpectedName($param, $desiredPropertyName);
if (!$paramRename instanceof \Rector\Naming\ValueObject\ParamRename) {
return;
}
$this->paramRenamer->rename($paramRename);
}
} }

View File

@ -16,11 +16,11 @@ final class VersionResolver
/** /**
* @var string * @var string
*/ */
public const PACKAGE_VERSION = 'ca8f75fae1838fe74ed74c6c96bfa4b4126c8029'; public const PACKAGE_VERSION = 'bc84defd14b3e96d43a02e7fd6ba43d8a6d26ddd';
/** /**
* @var string * @var string
*/ */
public const RELEASE_DATE = '2021-06-08 14:48:30'; public const RELEASE_DATE = '2021-06-08 14:49:57';
public static function resolvePackageVersion() : string public static function resolvePackageVersion() : string
{ {
$process = new \RectorPrefix20210608\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__); $process = new \RectorPrefix20210608\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);

2
vendor/autoload.php vendored
View File

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

View File

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

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload; namespace Composer\Autoload;
class ComposerStaticInitedcd6e9f2f8e5c0cfb23a73f2cd51adc class ComposerStaticInitd2654afe2b70b61dc042080b18a5f10d
{ {
public static $files = array ( public static $files = array (
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
@ -3877,9 +3877,9 @@ class ComposerStaticInitedcd6e9f2f8e5c0cfb23a73f2cd51adc
public static function getInitializer(ClassLoader $loader) public static function getInitializer(ClassLoader $loader)
{ {
return \Closure::bind(function () use ($loader) { return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitedcd6e9f2f8e5c0cfb23a73f2cd51adc::$prefixLengthsPsr4; $loader->prefixLengthsPsr4 = ComposerStaticInitd2654afe2b70b61dc042080b18a5f10d::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitedcd6e9f2f8e5c0cfb23a73f2cd51adc::$prefixDirsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInitd2654afe2b70b61dc042080b18a5f10d::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitedcd6e9f2f8e5c0cfb23a73f2cd51adc::$classMap; $loader->classMap = ComposerStaticInitd2654afe2b70b61dc042080b18a5f10d::$classMap;
}, null, ClassLoader::class); }, 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)) { if (!class_exists('CheckoutEntityFactory', false) && !interface_exists('CheckoutEntityFactory', false) && !trait_exists('CheckoutEntityFactory', false)) {
spl_autoload_call('RectorPrefix20210608\CheckoutEntityFactory'); spl_autoload_call('RectorPrefix20210608\CheckoutEntityFactory');
} }
if (!class_exists('ComposerAutoloaderInitedcd6e9f2f8e5c0cfb23a73f2cd51adc', false) && !interface_exists('ComposerAutoloaderInitedcd6e9f2f8e5c0cfb23a73f2cd51adc', false) && !trait_exists('ComposerAutoloaderInitedcd6e9f2f8e5c0cfb23a73f2cd51adc', false)) { if (!class_exists('ComposerAutoloaderInitd2654afe2b70b61dc042080b18a5f10d', false) && !interface_exists('ComposerAutoloaderInitd2654afe2b70b61dc042080b18a5f10d', false) && !trait_exists('ComposerAutoloaderInitd2654afe2b70b61dc042080b18a5f10d', false)) {
spl_autoload_call('RectorPrefix20210608\ComposerAutoloaderInitedcd6e9f2f8e5c0cfb23a73f2cd51adc'); spl_autoload_call('RectorPrefix20210608\ComposerAutoloaderInitd2654afe2b70b61dc042080b18a5f10d');
} }
if (!class_exists('Doctrine\Inflector\Inflector', false) && !interface_exists('Doctrine\Inflector\Inflector', false) && !trait_exists('Doctrine\Inflector\Inflector', false)) { if (!class_exists('Doctrine\Inflector\Inflector', false) && !interface_exists('Doctrine\Inflector\Inflector', false) && !trait_exists('Doctrine\Inflector\Inflector', false)) {
spl_autoload_call('RectorPrefix20210608\Doctrine\Inflector\Inflector'); spl_autoload_call('RectorPrefix20210608\Doctrine\Inflector\Inflector');
@ -3323,9 +3323,9 @@ if (!function_exists('print_node')) {
return \RectorPrefix20210608\print_node(...func_get_args()); return \RectorPrefix20210608\print_node(...func_get_args());
} }
} }
if (!function_exists('composerRequireedcd6e9f2f8e5c0cfb23a73f2cd51adc')) { if (!function_exists('composerRequired2654afe2b70b61dc042080b18a5f10d')) {
function composerRequireedcd6e9f2f8e5c0cfb23a73f2cd51adc() { function composerRequired2654afe2b70b61dc042080b18a5f10d() {
return \RectorPrefix20210608\composerRequireedcd6e9f2f8e5c0cfb23a73f2cd51adc(...func_get_args()); return \RectorPrefix20210608\composerRequired2654afe2b70b61dc042080b18a5f10d(...func_get_args());
} }
} }
if (!function_exists('parseArgs')) { if (!function_exists('parseArgs')) {