diff --git a/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php b/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php index b2ae37830e4..ef4831f6dac 100644 --- a/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php +++ b/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php @@ -10,6 +10,7 @@ use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\BetterPhpDocParser\ValueObject\Type\BracketsAwareUnionTypeNode; +use Rector\DeadCode\PhpDoc\Guard\StandaloneTypeRemovalGuard; use Rector\DeadCode\TypeNodeAnalyzer\GenericTypeNodeAnalyzer; use Rector\DeadCode\TypeNodeAnalyzer\MixedArrayTypeNodeAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; @@ -47,7 +48,12 @@ final class DeadParamTagValueNodeAnalyzer * @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger */ private $phpDocTypeChanger; - public function __construct(NodeNameResolver $nodeNameResolver, TypeComparator $typeComparator, GenericTypeNodeAnalyzer $genericTypeNodeAnalyzer, MixedArrayTypeNodeAnalyzer $mixedArrayTypeNodeAnalyzer, ParamAnalyzer $paramAnalyzer, PhpDocTypeChanger $phpDocTypeChanger) + /** + * @readonly + * @var \Rector\DeadCode\PhpDoc\Guard\StandaloneTypeRemovalGuard + */ + private $standaloneTypeRemovalGuard; + public function __construct(NodeNameResolver $nodeNameResolver, TypeComparator $typeComparator, GenericTypeNodeAnalyzer $genericTypeNodeAnalyzer, MixedArrayTypeNodeAnalyzer $mixedArrayTypeNodeAnalyzer, ParamAnalyzer $paramAnalyzer, PhpDocTypeChanger $phpDocTypeChanger, StandaloneTypeRemovalGuard $standaloneTypeRemovalGuard) { $this->nodeNameResolver = $nodeNameResolver; $this->typeComparator = $typeComparator; @@ -55,6 +61,7 @@ final class DeadParamTagValueNodeAnalyzer $this->mixedArrayTypeNodeAnalyzer = $mixedArrayTypeNodeAnalyzer; $this->paramAnalyzer = $paramAnalyzer; $this->phpDocTypeChanger = $phpDocTypeChanger; + $this->standaloneTypeRemovalGuard = $standaloneTypeRemovalGuard; } public function isDead(ParamTagValueNode $paramTagValueNode, FunctionLike $functionLike) : bool { @@ -78,7 +85,7 @@ final class DeadParamTagValueNodeAnalyzer return \false; } if (!$paramTagValueNode->type instanceof BracketsAwareUnionTypeNode) { - return \true; + return $this->standaloneTypeRemovalGuard->isLegal($paramTagValueNode->type, $param->type); } return $this->isAllowedBracketAwareUnion($paramTagValueNode->type); } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 3540091fa73..1d026318384 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '91ed251a8c450a776ec4b739c735b4bd6f9bf8d5'; + public const PACKAGE_VERSION = '88648d1e6fe18bcc67ea76ebdc76c1d1e6d1fe6f'; /** * @api * @var string */ - public const RELEASE_DATE = '2024-04-03 19:11:18'; + public const RELEASE_DATE = '2024-04-03 13:36:35'; /** * @var int */