Updated Rector to commit df8d2b78edd46542e6426fec606c3ea98d712532

df8d2b78ed Copy subtype phpdoc on ClassPropertyAssignToConstructorPromotionRector (#8438) (#5603)
This commit is contained in:
Tomas Votruba 2024-02-11 09:00:00 +00:00
parent 1e3b11c5e1
commit 7f9bb2ae80
2 changed files with 18 additions and 3 deletions

View File

@ -14,6 +14,7 @@ use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Comments\NodeDocBlock\DocBlockUpdater;
use Rector\DeadCode\PhpDoc\DeadVarTagValueNodeAnalyzer;
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
use Rector\PHPStanStaticTypeMapper\DoctrineTypeAnalyzer;
final class VarTagRemover
{
@ -42,13 +43,19 @@ final class VarTagRemover
* @var \Rector\Comments\NodeDocBlock\DocBlockUpdater
*/
private $docBlockUpdater;
public function __construct(DoctrineTypeAnalyzer $doctrineTypeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, DeadVarTagValueNodeAnalyzer $deadVarTagValueNodeAnalyzer, PhpDocTypeChanger $phpDocTypeChanger, DocBlockUpdater $docBlockUpdater)
/**
* @readonly
* @var \Rector\NodeTypeResolver\TypeComparator\TypeComparator
*/
private $typeComparator;
public function __construct(DoctrineTypeAnalyzer $doctrineTypeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, DeadVarTagValueNodeAnalyzer $deadVarTagValueNodeAnalyzer, PhpDocTypeChanger $phpDocTypeChanger, DocBlockUpdater $docBlockUpdater, TypeComparator $typeComparator)
{
$this->doctrineTypeAnalyzer = $doctrineTypeAnalyzer;
$this->phpDocInfoFactory = $phpDocInfoFactory;
$this->deadVarTagValueNodeAnalyzer = $deadVarTagValueNodeAnalyzer;
$this->phpDocTypeChanger = $phpDocTypeChanger;
$this->docBlockUpdater = $docBlockUpdater;
$this->typeComparator = $typeComparator;
}
public function removeVarTagIfUseless(PhpDocInfo $phpDocInfo, Property $property) : bool
{
@ -92,7 +99,15 @@ final class VarTagRemover
if ($this->phpDocTypeChanger->isAllowed($varTagValueNode->type)) {
return;
}
// keep subtypes like positive-int
if ($this->shouldKeepSubtypes($type, $phpDocInfo->getVarType())) {
return;
}
$phpDocInfo->removeByType(VarTagValueNode::class);
$this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node);
}
private function shouldKeepSubtypes(Type $type, Type $varType) : bool
{
return !$this->typeComparator->areTypesEqual($type, $varType) && $this->typeComparator->isSubtype($varType, $type);
}
}

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = '6980dc63c77d0214730c94e0c620fa729047f879';
public const PACKAGE_VERSION = 'df8d2b78edd46542e6426fec606c3ea98d712532';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2024-02-11 15:15:49';
public const RELEASE_DATE = '2024-02-11 15:57:49';
/**
* @var int
*/