Skip to content

Commit

Permalink
Updated Rector to commit 78829b3
Browse files Browse the repository at this point in the history
rectorphp/rector-src@78829b3 Decouple ConstructorClassMethodFactory (#1269)
  • Loading branch information
TomasVotruba committed Nov 18, 2021
1 parent 976ae72 commit fd1f097
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 43 deletions.
43 changes: 43 additions & 0 deletions rules/Compatibility/NodeFactory/ConstructorClassMethodFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?php

declare (strict_types=1);
namespace Rector\Compatibility\NodeFactory;

use PhpParser\Node\Param;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassMethod;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
use Rector\Compatibility\ValueObject\PropertyWithPhpDocInfo;
use Rector\Core\ValueObject\MethodName;
use Rector\DeadCode\PhpDoc\TagRemover\ParamTagRemover;
final class ConstructorClassMethodFactory
{
/**
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
*/
private $phpDocInfoFactory;
/**
* @var \Rector\DeadCode\PhpDoc\TagRemover\ParamTagRemover
*/
private $paramTagRemover;
public function __construct(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\DeadCode\PhpDoc\TagRemover\ParamTagRemover $paramTagRemover)
{
$this->phpDocInfoFactory = $phpDocInfoFactory;
$this->paramTagRemover = $paramTagRemover;
}
/**
* @param PropertyWithPhpDocInfo[] $requiredPropertiesWithPhpDocInfos
* @param Param[] $params
*/
public function createConstructorClassMethod(array $requiredPropertiesWithPhpDocInfos, array $params) : \PhpParser\Node\Stmt\ClassMethod
{
$classMethod = new \PhpParser\Node\Stmt\ClassMethod(\Rector\Core\ValueObject\MethodName::CONSTRUCT, ['flags' => \PhpParser\Node\Stmt\Class_::MODIFIER_PUBLIC, 'params' => $params]);
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod);
foreach ($requiredPropertiesWithPhpDocInfos as $requiredPropertyWithPhpDocInfo) {
$paramTagValueNode = $requiredPropertyWithPhpDocInfo->getParamTagValueNode();
$phpDocInfo->addTagValueNode($paramTagValueNode);
}
$this->paramTagRemover->removeParamTagsIfUseless($phpDocInfo, $classMethod);
return $classMethod;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,14 @@
use PhpParser\Node\NullableType;
use PhpParser\Node\Param;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassMethod;
use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode;
use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover;
use Rector\Compatibility\NodeAnalyzer\RequiredAnnotationPropertyAnalyzer;
use Rector\Compatibility\NodeFactory\ConstructorClassMethodFactory;
use Rector\Compatibility\ValueObject\PropertyWithPhpDocInfo;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\MethodName;
use Rector\DeadCode\PhpDoc\TagRemover\ParamTagRemover;
use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
Expand All @@ -38,20 +36,20 @@ final class AttributeCompatibleAnnotationRector extends \Rector\Core\Rector\Abst
* @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover
*/
private $phpDocTagRemover;
/**
* @var \Rector\DeadCode\PhpDoc\TagRemover\ParamTagRemover
*/
private $paramTagRemover;
/**
* @var \Rector\Compatibility\NodeAnalyzer\RequiredAnnotationPropertyAnalyzer
*/
private $requiredAnnotationPropertyAnalyzer;
public function __construct(\Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer $phpAttributeAnalyzer, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover $phpDocTagRemover, \Rector\DeadCode\PhpDoc\TagRemover\ParamTagRemover $paramTagRemover, \Rector\Compatibility\NodeAnalyzer\RequiredAnnotationPropertyAnalyzer $requiredAnnotationPropertyAnalyzer)
/**
* @var \Rector\Compatibility\NodeFactory\ConstructorClassMethodFactory
*/
private $constructorClassMethodFactory;
public function __construct(\Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer $phpAttributeAnalyzer, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover $phpDocTagRemover, \Rector\Compatibility\NodeAnalyzer\RequiredAnnotationPropertyAnalyzer $requiredAnnotationPropertyAnalyzer, \Rector\Compatibility\NodeFactory\ConstructorClassMethodFactory $constructorClassMethodFactory)
{
$this->phpAttributeAnalyzer = $phpAttributeAnalyzer;
$this->phpDocTagRemover = $phpDocTagRemover;
$this->paramTagRemover = $paramTagRemover;
$this->requiredAnnotationPropertyAnalyzer = $requiredAnnotationPropertyAnalyzer;
$this->constructorClassMethodFactory = $constructorClassMethodFactory;
}
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
{
Expand Down Expand Up @@ -124,7 +122,8 @@ public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
$propertyName = $this->getName($property);
$requiredPropertiesWithPhpDocInfos[] = new \Rector\Compatibility\ValueObject\PropertyWithPhpDocInfo($propertyName, $property, $propertyPhpDocInfo);
}
$constructorClassMethod = $this->createConstructorClassMethod($requiredPropertiesWithPhpDocInfos);
$params = $this->createConstructParams($requiredPropertiesWithPhpDocInfos);
$constructorClassMethod = $this->constructorClassMethodFactory->createConstructorClassMethod($requiredPropertiesWithPhpDocInfos, $params);
$node->stmts = \array_merge($node->stmts, [$constructorClassMethod]);
return $node;
}
Expand Down Expand Up @@ -163,18 +162,4 @@ private function createConstructParams(array $requiredPropertiesWithPhpDocInfos)
}
return $params;
}
/**
* @param PropertyWithPhpDocInfo[] $requiredPropertiesWithPhpDocInfos
*/
private function createConstructorClassMethod(array $requiredPropertiesWithPhpDocInfos) : \PhpParser\Node\Stmt\ClassMethod
{
$classMethod = new \PhpParser\Node\Stmt\ClassMethod(\Rector\Core\ValueObject\MethodName::CONSTRUCT, ['flags' => \PhpParser\Node\Stmt\Class_::MODIFIER_PUBLIC, 'params' => $this->createConstructParams($requiredPropertiesWithPhpDocInfos)]);
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod);
foreach ($requiredPropertiesWithPhpDocInfos as $requiredPropertyWithPhpDocInfo) {
$paramTagValueNode = $requiredPropertyWithPhpDocInfo->getParamTagValueNode();
$phpDocInfo->addTagValueNode($paramTagValueNode);
}
$this->paramTagRemover->removeParamTagsIfUseless($phpDocInfo, $classMethod);
return $classMethod;
}
}
4 changes: 2 additions & 2 deletions src/Application/VersionResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = '587d8d80585e20ce6455602ed12602e2bb7e9b71';
public const PACKAGE_VERSION = '78829b317ac77ff86c71c31731c56151ac09009d';
/**
* @var string
*/
public const RELEASE_DATE = '2021-11-18 20:04:50';
public const RELEASE_DATE = '2021-11-18 20:07:11';
public static function resolvePackageVersion() : string
{
$process = new \RectorPrefix20211118\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);
Expand Down
2 changes: 1 addition & 1 deletion vendor/autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec::getLoader();
return ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be::getLoader();
1 change: 1 addition & 0 deletions vendor/composer/autoload_classmap.php
Original file line number Diff line number Diff line change
Expand Up @@ -1470,6 +1470,7 @@
'Rector\\Comments\\NodeTraverser\\CommentRemovingNodeTraverser' => $baseDir . '/packages/Comments/NodeTraverser/CommentRemovingNodeTraverser.php',
'Rector\\Comments\\NodeVisitor\\CommentRemovingNodeVisitor' => $baseDir . '/packages/Comments/NodeVisitor/CommentRemovingNodeVisitor.php',
'Rector\\Compatibility\\NodeAnalyzer\\RequiredAnnotationPropertyAnalyzer' => $baseDir . '/rules/Compatibility/NodeAnalyzer/RequiredAnnotationPropertyAnalyzer.php',
'Rector\\Compatibility\\NodeFactory\\ConstructorClassMethodFactory' => $baseDir . '/rules/Compatibility/NodeFactory/ConstructorClassMethodFactory.php',
'Rector\\Compatibility\\Rector\\Class_\\AttributeCompatibleAnnotationRector' => $baseDir . '/rules/Compatibility/Rector/Class_/AttributeCompatibleAnnotationRector.php',
'Rector\\Compatibility\\ValueObject\\PropertyWithPhpDocInfo' => $baseDir . '/rules/Compatibility/ValueObject/PropertyWithPhpDocInfo.php',
'Rector\\Composer\\Application\\FileProcessor\\ComposerFileProcessor' => $baseDir . '/rules/Composer/Application/FileProcessor/ComposerFileProcessor.php',
Expand Down
14 changes: 7 additions & 7 deletions vendor/composer/autoload_real.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

// autoload_real.php @generated by Composer

class ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec
class ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be
{
private static $loader;

Expand All @@ -22,15 +22,15 @@ public static function getLoader()
return self::$loader;
}

spl_autoload_register(array('ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be', '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\ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit482b428c13bd3ec64ea735229240f6be::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
Expand All @@ -42,19 +42,19 @@ public static function getLoader()
$loader->register(true);

if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec::$files;
$includeFiles = Composer\Autoload\ComposerStaticInit482b428c13bd3ec64ea735229240f6be::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequirecb8a3884e2a1d755e219a4422b6f2dec($fileIdentifier, $file);
composerRequire482b428c13bd3ec64ea735229240f6be($fileIdentifier, $file);
}

return $loader;
}
}

function composerRequirecb8a3884e2a1d755e219a4422b6f2dec($fileIdentifier, $file)
function composerRequire482b428c13bd3ec64ea735229240f6be($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
Expand Down
9 changes: 5 additions & 4 deletions vendor/composer/autoload_static.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Composer\Autoload;

class ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec
class ComposerStaticInit482b428c13bd3ec64ea735229240f6be
{
public static $files = array (
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
Expand Down Expand Up @@ -1800,6 +1800,7 @@ class ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec
'Rector\\Comments\\NodeTraverser\\CommentRemovingNodeTraverser' => __DIR__ . '/../..' . '/packages/Comments/NodeTraverser/CommentRemovingNodeTraverser.php',
'Rector\\Comments\\NodeVisitor\\CommentRemovingNodeVisitor' => __DIR__ . '/../..' . '/packages/Comments/NodeVisitor/CommentRemovingNodeVisitor.php',
'Rector\\Compatibility\\NodeAnalyzer\\RequiredAnnotationPropertyAnalyzer' => __DIR__ . '/../..' . '/rules/Compatibility/NodeAnalyzer/RequiredAnnotationPropertyAnalyzer.php',
'Rector\\Compatibility\\NodeFactory\\ConstructorClassMethodFactory' => __DIR__ . '/../..' . '/rules/Compatibility/NodeFactory/ConstructorClassMethodFactory.php',
'Rector\\Compatibility\\Rector\\Class_\\AttributeCompatibleAnnotationRector' => __DIR__ . '/../..' . '/rules/Compatibility/Rector/Class_/AttributeCompatibleAnnotationRector.php',
'Rector\\Compatibility\\ValueObject\\PropertyWithPhpDocInfo' => __DIR__ . '/../..' . '/rules/Compatibility/ValueObject/PropertyWithPhpDocInfo.php',
'Rector\\Composer\\Application\\FileProcessor\\ComposerFileProcessor' => __DIR__ . '/../..' . '/rules/Composer/Application/FileProcessor/ComposerFileProcessor.php',
Expand Down Expand Up @@ -3557,9 +3558,9 @@ class ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitcb8a3884e2a1d755e219a4422b6f2dec::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit482b428c13bd3ec64ea735229240f6be::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit482b428c13bd3ec64ea735229240f6be::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit482b428c13bd3ec64ea735229240f6be::$classMap;

}, null, ClassLoader::class);
}
Expand Down
10 changes: 5 additions & 5 deletions vendor/scoper-autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
spl_autoload_call('RectorPrefix20211118\AutoloadIncluder');
}
if (!class_exists('ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec', false) && !interface_exists('ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec', false) && !trait_exists('ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec', false)) {
spl_autoload_call('RectorPrefix20211118\ComposerAutoloaderInitcb8a3884e2a1d755e219a4422b6f2dec');
if (!class_exists('ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be', false) && !interface_exists('ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be', false) && !trait_exists('ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be', false)) {
spl_autoload_call('RectorPrefix20211118\ComposerAutoloaderInit482b428c13bd3ec64ea735229240f6be');
}
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('RectorPrefix20211118\Helmich\TypoScriptParser\Parser\AST\Statement');
Expand Down Expand Up @@ -81,9 +81,9 @@ function print_node() {
return \RectorPrefix20211118\print_node(...func_get_args());
}
}
if (!function_exists('composerRequirecb8a3884e2a1d755e219a4422b6f2dec')) {
function composerRequirecb8a3884e2a1d755e219a4422b6f2dec() {
return \RectorPrefix20211118\composerRequirecb8a3884e2a1d755e219a4422b6f2dec(...func_get_args());
if (!function_exists('composerRequire482b428c13bd3ec64ea735229240f6be')) {
function composerRequire482b428c13bd3ec64ea735229240f6be() {
return \RectorPrefix20211118\composerRequire482b428c13bd3ec64ea735229240f6be(...func_get_args());
}
}
if (!function_exists('parseArgs')) {
Expand Down

0 comments on commit fd1f097

Please sign in to comment.