diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/Class_/DocblockVarFromParamDocblockInConstructorRector/Fixture/override_dummy_array_var.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/DocblockVarFromParamDocblockInConstructorRector/Fixture/override_dummy_array_var.php.inc new file mode 100644 index 00000000000..d460b2d41b8 --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/DocblockVarFromParamDocblockInConstructorRector/Fixture/override_dummy_array_var.php.inc @@ -0,0 +1,43 @@ +names = $names; + } +} + +?> +----- +names = $names; + } +} + +?> diff --git a/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarFromParamDocblockInConstructorRector.php b/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarFromParamDocblockInConstructorRector.php index 2ca43d1c4c6..a4037008953 100644 --- a/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarFromParamDocblockInConstructorRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarFromParamDocblockInConstructorRector.php @@ -8,12 +8,12 @@ use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Property; -use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; use PHPStan\Type\ArrayType; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Rector\AbstractRector; use Rector\TypeDeclarationDocblocks\NodeAnalyzer\ConstructorAssignedTypeResolver; use Rector\TypeDeclarationDocblocks\NodeDocblockTypeDecorator; +use Rector\TypeDeclarationDocblocks\TagNodeAnalyzer\UsefulArrayTagNodeAnalyzer; use Rector\ValueObject\MethodName; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -26,6 +26,7 @@ final class DocblockVarFromParamDocblockInConstructorRector extends AbstractRect public function __construct( private readonly PhpDocInfoFactory $phpDocInfoFactory, private readonly ConstructorAssignedTypeResolver $constructorAssignedTypeResolver, + private readonly UsefulArrayTagNodeAnalyzer $usefulArrayTagNodeAnalyzer, private readonly NodeDocblockTypeDecorator $nodeDocblockTypeDecorator ) { } @@ -96,7 +97,7 @@ public function refactor(Node $node): ?Node $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); // @var tag already given - if ($propertyPhpDocInfo->getVarTagValueNode() instanceof VarTagValueNode) { + if ($this->usefulArrayTagNodeAnalyzer->isUsefulArrayTag($propertyPhpDocInfo->getVarTagValueNode())) { continue; }