Updated Rector to commit 8bf0045044d1357c6d10bc61e84fd962f69ccc20

8bf0045044 remove downgrade only method
This commit is contained in:
Tomas Votruba 2023-01-15 00:50:07 +00:00
parent cde52ddf2f
commit 01b8c03d60
16 changed files with 94 additions and 70 deletions

View File

@ -3,22 +3,13 @@
declare (strict_types=1);
namespace Rector\CodeQuality\NodeFactory;
use PhpParser\Node\ComplexType;
use PhpParser\Node\Identifier;
use PhpParser\Node\Name;
use PhpParser\Node\Stmt\Property;
use PHPStan\Type\Type;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Privatization\TypeManipulator\TypeNormalizer;
use Rector\StaticTypeMapper\StaticTypeMapper;
final class PropertyTypeDecorator
{
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger
@ -34,9 +25,8 @@ final class PropertyTypeDecorator
* @var \Rector\Privatization\TypeManipulator\TypeNormalizer
*/
private $typeNormalizer;
public function __construct(StaticTypeMapper $staticTypeMapper, PhpDocTypeChanger $phpDocTypeChanger, PhpDocInfoFactory $phpDocInfoFactory, TypeNormalizer $typeNormalizer)
public function __construct(PhpDocTypeChanger $phpDocTypeChanger, PhpDocInfoFactory $phpDocInfoFactory, TypeNormalizer $typeNormalizer)
{
$this->staticTypeMapper = $staticTypeMapper;
$this->phpDocTypeChanger = $phpDocTypeChanger;
$this->phpDocInfoFactory = $phpDocInfoFactory;
$this->typeNormalizer = $typeNormalizer;
@ -49,17 +39,4 @@ final class PropertyTypeDecorator
$phpDocInfo->makeMultiLined();
$this->phpDocTypeChanger->changeVarType($phpDocInfo, $propertyType);
}
/**
* @api downgrade
* @param \PhpParser\Node\ComplexType|\PhpParser\Node\Identifier|\PhpParser\Node\Name $typeNode
*/
public function decoratePropertyWithDocBlock(Property $property, $typeNode) : void
{
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property);
if ($phpDocInfo->getVarTagValueNode() !== null) {
return;
}
$newType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($typeNode);
$this->phpDocTypeChanger->changeVarType($phpDocInfo, $newType);
}
}

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = '09444df13c372bdd15fd9fcf92c4be6b053fb318';
public const PACKAGE_VERSION = '8bf0045044d1357c6d10bc61e84fd962f69ccc20';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2023-01-15 05:34:24';
public const RELEASE_DATE = '2023-01-15 00:44:29';
/**
* @var int
*/

2
vendor/autoload.php vendored
View File

@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit4b4d671263c78027bb801eacaa3f73e6::getLoader();
return ComposerAutoloaderInit9b6fe8c2e325a9b6213c78eead332d87::getLoader();

View File

@ -1415,7 +1415,6 @@ return array(
'Rector\\Core\\NodeAnalyzer\\BinaryOpAnalyzer' => $baseDir . '/src/NodeAnalyzer/BinaryOpAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\CallAnalyzer' => $baseDir . '/src/NodeAnalyzer/CallAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\ClassAnalyzer' => $baseDir . '/src/NodeAnalyzer/ClassAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\CoalesceAnalyzer' => $baseDir . '/src/NodeAnalyzer/CoalesceAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\CompactFuncCallAnalyzer' => $baseDir . '/src/NodeAnalyzer/CompactFuncCallAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\ConstFetchAnalyzer' => $baseDir . '/src/NodeAnalyzer/ConstFetchAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\DoctrineEntityAnalyzer' => $baseDir . '/src/NodeAnalyzer/DoctrineEntityAnalyzer.php',
@ -1890,6 +1889,7 @@ return array(
'Rector\\Naming\\ValueObject\\VariableAndCallAssign' => $baseDir . '/rules/Naming/ValueObject/VariableAndCallAssign.php',
'Rector\\Naming\\ValueObject\\VariableAndCallForeach' => $baseDir . '/rules/Naming/ValueObject/VariableAndCallForeach.php',
'Rector\\Naming\\VariableRenamer' => $baseDir . '/rules/Naming/VariableRenamer.php',
'Rector\\NodeAnalyzer\\CoalesceAnalyzer' => $vendorDir . '/rector/rector-downgrade-php/src/NodeAnalyzer/CoalesceAnalyzer.php',
'Rector\\NodeCollector\\BinaryOpConditionsCollector' => $baseDir . '/packages/NodeCollector/BinaryOpConditionsCollector.php',
'Rector\\NodeCollector\\BinaryOpTreeRootLocator' => $baseDir . '/packages/NodeCollector/BinaryOpTreeRootLocator.php',
'Rector\\NodeCollector\\NodeAnalyzer\\ArrayCallableMethodMatcher' => $baseDir . '/packages/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php',
@ -1897,6 +1897,7 @@ return array(
'Rector\\NodeCollector\\StaticAnalyzer' => $baseDir . '/packages/NodeCollector/StaticAnalyzer.php',
'Rector\\NodeCollector\\ValueObject\\ArrayCallable' => $baseDir . '/packages/NodeCollector/ValueObject/ArrayCallable.php',
'Rector\\NodeCollector\\ValueObject\\ArrayCallableDynamicMethod' => $baseDir . '/packages/NodeCollector/ValueObject/ArrayCallableDynamicMethod.php',
'Rector\\NodeManipulator\\PropertyDecorator' => $vendorDir . '/rector/rector-downgrade-php/src/NodeManipulator/PropertyDecorator.php',
'Rector\\NodeNameResolver\\Contract\\NodeNameResolverInterface' => $baseDir . '/packages/NodeNameResolver/Contract/NodeNameResolverInterface.php',
'Rector\\NodeNameResolver\\Error\\InvalidNameNodeReporter' => $baseDir . '/packages/NodeNameResolver/Error/InvalidNameNodeReporter.php',
'Rector\\NodeNameResolver\\NodeNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver.php',

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit4b4d671263c78027bb801eacaa3f73e6
class ComposerAutoloaderInit9b6fe8c2e325a9b6213c78eead332d87
{
private static $loader;
@ -22,17 +22,17 @@ class ComposerAutoloaderInit4b4d671263c78027bb801eacaa3f73e6
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit4b4d671263c78027bb801eacaa3f73e6', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit9b6fe8c2e325a9b6213c78eead332d87', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit4b4d671263c78027bb801eacaa3f73e6', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit9b6fe8c2e325a9b6213c78eead332d87', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit9b6fe8c2e325a9b6213c78eead332d87::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$filesToLoad = \Composer\Autoload\ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6::$files;
$filesToLoad = \Composer\Autoload\ComposerStaticInit9b6fe8c2e325a9b6213c78eead332d87::$files;
$requireFile = static function ($fileIdentifier, $file) {
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6
class ComposerStaticInit9b6fe8c2e325a9b6213c78eead332d87
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@ -1660,7 +1660,6 @@ class ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6
'Rector\\Core\\NodeAnalyzer\\BinaryOpAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/BinaryOpAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\CallAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/CallAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\ClassAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/ClassAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\CoalesceAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/CoalesceAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\CompactFuncCallAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/CompactFuncCallAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\ConstFetchAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/ConstFetchAnalyzer.php',
'Rector\\Core\\NodeAnalyzer\\DoctrineEntityAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/DoctrineEntityAnalyzer.php',
@ -2135,6 +2134,7 @@ class ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6
'Rector\\Naming\\ValueObject\\VariableAndCallAssign' => __DIR__ . '/../..' . '/rules/Naming/ValueObject/VariableAndCallAssign.php',
'Rector\\Naming\\ValueObject\\VariableAndCallForeach' => __DIR__ . '/../..' . '/rules/Naming/ValueObject/VariableAndCallForeach.php',
'Rector\\Naming\\VariableRenamer' => __DIR__ . '/../..' . '/rules/Naming/VariableRenamer.php',
'Rector\\NodeAnalyzer\\CoalesceAnalyzer' => __DIR__ . '/..' . '/rector/rector-downgrade-php/src/NodeAnalyzer/CoalesceAnalyzer.php',
'Rector\\NodeCollector\\BinaryOpConditionsCollector' => __DIR__ . '/../..' . '/packages/NodeCollector/BinaryOpConditionsCollector.php',
'Rector\\NodeCollector\\BinaryOpTreeRootLocator' => __DIR__ . '/../..' . '/packages/NodeCollector/BinaryOpTreeRootLocator.php',
'Rector\\NodeCollector\\NodeAnalyzer\\ArrayCallableMethodMatcher' => __DIR__ . '/../..' . '/packages/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php',
@ -2142,6 +2142,7 @@ class ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6
'Rector\\NodeCollector\\StaticAnalyzer' => __DIR__ . '/../..' . '/packages/NodeCollector/StaticAnalyzer.php',
'Rector\\NodeCollector\\ValueObject\\ArrayCallable' => __DIR__ . '/../..' . '/packages/NodeCollector/ValueObject/ArrayCallable.php',
'Rector\\NodeCollector\\ValueObject\\ArrayCallableDynamicMethod' => __DIR__ . '/../..' . '/packages/NodeCollector/ValueObject/ArrayCallableDynamicMethod.php',
'Rector\\NodeManipulator\\PropertyDecorator' => __DIR__ . '/..' . '/rector/rector-downgrade-php/src/NodeManipulator/PropertyDecorator.php',
'Rector\\NodeNameResolver\\Contract\\NodeNameResolverInterface' => __DIR__ . '/../..' . '/packages/NodeNameResolver/Contract/NodeNameResolverInterface.php',
'Rector\\NodeNameResolver\\Error\\InvalidNameNodeReporter' => __DIR__ . '/../..' . '/packages/NodeNameResolver/Error/InvalidNameNodeReporter.php',
'Rector\\NodeNameResolver\\NodeNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver.php',
@ -3065,9 +3066,9 @@ class ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit4b4d671263c78027bb801eacaa3f73e6::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit9b6fe8c2e325a9b6213c78eead332d87::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit9b6fe8c2e325a9b6213c78eead332d87::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit9b6fe8c2e325a9b6213c78eead332d87::$classMap;
}, null, ClassLoader::class);
}

View File

@ -1913,12 +1913,12 @@
"source": {
"type": "git",
"url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git",
"reference": "e57d006c25129eacc2b02e5db31f5453e9354605"
"reference": "ae781e83f50bf04df0c13e9d623e0243c953b541"
},
"dist": {
"type": "zip",
"url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/e57d006c25129eacc2b02e5db31f5453e9354605",
"reference": "e57d006c25129eacc2b02e5db31f5453e9354605",
"url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/ae781e83f50bf04df0c13e9d623e0243c953b541",
"reference": "ae781e83f50bf04df0c13e9d623e0243c953b541",
"shasum": ""
},
"require": {
@ -1944,7 +1944,7 @@
"symplify\/rule-doc-generator": "^11.1",
"symplify\/vendor-patches": "^11.1"
},
"time": "2023-01-13T15:12:41+00:00",
"time": "2023-01-15T00:42:19+00:00",
"default-branch": true,
"type": "rector-extension",
"extra": {

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ namespace Rector\RectorInstaller;
*/
final class GeneratedConfig
{
public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main f0c3c11'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main e57d006'), 'rector/rector-php-parser' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-php-parser', 'relative_install_path' => '../../rector-php-parser', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 9ea5f62'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 2cfc0a5'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 3b132c1'));
public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main f0c3c11'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main ae781e8'), 'rector/rector-php-parser' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-php-parser', 'relative_install_path' => '../../rector-php-parser', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 9ea5f62'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 2cfc0a5'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 3b132c1'));
private function __construct()
{
}

View File

@ -8,8 +8,8 @@ use PhpParser\Node\Expr\BinaryOp\Coalesce;
use PhpParser\Node\Expr\BinaryOp\NotIdentical;
use PhpParser\Node\Expr\Isset_;
use PhpParser\Node\Expr\Ternary;
use Rector\Core\NodeAnalyzer\CoalesceAnalyzer;
use Rector\Core\Rector\AbstractRector;
use Rector\NodeAnalyzer\CoalesceAnalyzer;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
@ -21,7 +21,7 @@ final class DowngradeNullCoalesceRector extends AbstractRector
{
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\CoalesceAnalyzer
* @var \Rector\NodeAnalyzer\CoalesceAnalyzer
*/
private $coalesceAnalyzer;
public function __construct(CoalesceAnalyzer $coalesceAnalyzer)

View File

@ -7,8 +7,8 @@ use PhpParser\Node;
use PhpParser\Node\Expr;
use PhpParser\Node\NullableType;
use PhpParser\Node\Stmt\Property;
use Rector\CodeQuality\NodeFactory\PropertyTypeDecorator;
use Rector\Core\Rector\AbstractRector;
use Rector\NodeManipulator\PropertyDecorator;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
@ -18,12 +18,12 @@ final class DowngradeTypedPropertyRector extends AbstractRector
{
/**
* @readonly
* @var \Rector\CodeQuality\NodeFactory\PropertyTypeDecorator
* @var \Rector\NodeManipulator\PropertyDecorator
*/
private $propertyTypeDecorator;
public function __construct(PropertyTypeDecorator $propertyTypeDecorator)
private $PropertyDecorator;
public function __construct(PropertyDecorator $PropertyDecorator)
{
$this->propertyTypeDecorator = $propertyTypeDecorator;
$this->PropertyDecorator = $PropertyDecorator;
}
/**
* @return array<class-string<Node>>
@ -63,7 +63,7 @@ CODE_SAMPLE
if ($node->type instanceof NullableType && $default instanceof Expr && $this->valueResolver->isNull($default)) {
$node->props[0]->default = null;
}
$this->propertyTypeDecorator->decoratePropertyWithDocBlock($node, $node->type);
$this->PropertyDecorator->decorateWithDocBlock($node, $node->type);
$node->type = null;
return $node;
}

View File

@ -22,10 +22,10 @@ use PhpParser\Node\Stmt;
use PhpParser\Node\Stmt\Expression;
use PhpParser\Node\Stmt\If_;
use PhpParser\Node\Stmt\Return_;
use Rector\Core\NodeAnalyzer\CoalesceAnalyzer;
use Rector\Core\NodeManipulator\BinaryOpManipulator;
use Rector\Core\NodeManipulator\IfManipulator;
use Rector\Core\Rector\AbstractRector;
use Rector\NodeAnalyzer\CoalesceAnalyzer;
use Rector\PostRector\Collector\NodesToAddCollector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
@ -43,7 +43,7 @@ final class DowngradeThrowExprRector extends AbstractRector
private $ifManipulator;
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\CoalesceAnalyzer
* @var \Rector\NodeAnalyzer\CoalesceAnalyzer
*/
private $coalesceAnalyzer;
/**

View File

@ -6,8 +6,8 @@ namespace Rector\DowngradePhp80\Rector\Property;
use PhpParser\Node;
use PhpParser\Node\Stmt\Property;
use PHPStan\Type\MixedType;
use Rector\CodeQuality\NodeFactory\PropertyTypeDecorator;
use Rector\Core\Rector\AbstractRector;
use Rector\NodeManipulator\PropertyDecorator;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
@ -17,12 +17,12 @@ final class DowngradeMixedTypeTypedPropertyRector extends AbstractRector
{
/**
* @readonly
* @var \Rector\CodeQuality\NodeFactory\PropertyTypeDecorator
* @var \Rector\NodeManipulator\PropertyDecorator
*/
private $propertyTypeDecorator;
public function __construct(PropertyTypeDecorator $propertyTypeDecorator)
private $PropertyDecorator;
public function __construct(PropertyDecorator $PropertyDecorator)
{
$this->propertyTypeDecorator = $propertyTypeDecorator;
$this->PropertyDecorator = $PropertyDecorator;
}
/**
* @return array<class-string<Node>>
@ -61,7 +61,7 @@ CODE_SAMPLE
if ($this->shouldSkip($node)) {
return null;
}
$this->propertyTypeDecorator->decoratePropertyWithDocBlock($node, $node->type);
$this->PropertyDecorator->decorateWithDocBlock($node, $node->type);
$node->type = null;
return $node;
}

View File

@ -6,8 +6,8 @@ namespace Rector\DowngradePhp80\Rector\Property;
use PhpParser\Node;
use PhpParser\Node\Stmt\Property;
use PhpParser\Node\UnionType;
use Rector\CodeQuality\NodeFactory\PropertyTypeDecorator;
use Rector\Core\Rector\AbstractRector;
use Rector\NodeManipulator\PropertyDecorator;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
@ -17,12 +17,12 @@ final class DowngradeUnionTypeTypedPropertyRector extends AbstractRector
{
/**
* @readonly
* @var \Rector\CodeQuality\NodeFactory\PropertyTypeDecorator
* @var \Rector\NodeManipulator\PropertyDecorator
*/
private $propertyTypeDecorator;
public function __construct(PropertyTypeDecorator $propertyTypeDecorator)
private $PropertyDecorator;
public function __construct(PropertyDecorator $PropertyDecorator)
{
$this->propertyTypeDecorator = $propertyTypeDecorator;
$this->PropertyDecorator = $PropertyDecorator;
}
/**
* @return array<class-string<Node>>
@ -61,7 +61,7 @@ CODE_SAMPLE
if (!$this->shouldRemoveProperty($node)) {
return null;
}
$this->propertyTypeDecorator->decoratePropertyWithDocBlock($node, $node->type);
$this->PropertyDecorator->decorateWithDocBlock($node, $node->type);
$node->type = null;
return $node;
}

View File

@ -1,7 +1,7 @@
<?php
declare (strict_types=1);
namespace Rector\Core\NodeAnalyzer;
namespace Rector\NodeAnalyzer;
use PhpParser\Node\Expr;
use PhpParser\Node\Expr\ArrayDimFetch;
@ -15,9 +15,6 @@ final class CoalesceAnalyzer
* @var array<class-string<Expr>>
*/
private const ISSETABLE_EXPR = [Variable::class, ArrayDimFetch::class, PropertyFetch::class, StaticPropertyFetch::class];
/**
* @api downgrade
*/
public function hasIssetableLeft(Coalesce $coalesce) : bool
{
$leftClass = \get_class($coalesce->left);

View File

@ -0,0 +1,48 @@
<?php
declare (strict_types=1);
namespace Rector\NodeManipulator;
use PhpParser\Node\ComplexType;
use PhpParser\Node\Identifier;
use PhpParser\Node\Name;
use PhpParser\Node\Stmt\Property;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\StaticTypeMapper\StaticTypeMapper;
final class PropertyDecorator
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
*/
private $phpDocInfoFactory;
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger
*/
private $phpDocTypeChanger;
public function __construct(PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, PhpDocTypeChanger $phpDocTypeChanger)
{
$this->phpDocInfoFactory = $phpDocInfoFactory;
$this->staticTypeMapper = $staticTypeMapper;
$this->phpDocTypeChanger = $phpDocTypeChanger;
}
/**
* @param \PhpParser\Node\ComplexType|\PhpParser\Node\Identifier|\PhpParser\Node\Name $typeNode
*/
public function decorateWithDocBlock(Property $property, $typeNode) : void
{
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property);
if ($phpDocInfo->getVarTagValueNode() !== null) {
return;
}
$newType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($typeNode);
$this->phpDocTypeChanger->changeVarType($phpDocInfo, $newType);
}
}