Skip to content

Commit 0ed860f

Browse files
committed
[TypeDeclarationDocblocks] Allow override dummy array var on DocblockVarArrayFromPropertyDefaultsRector
1 parent bf39095 commit 0ed860f

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\DocblockVarArrayFromPropertyDefaultsRector\Fixture;
4+
5+
final class OverrideDummyArrayVar
6+
{
7+
private array $names = ['Jim', 'Rohn'];
8+
}
9+
10+
?>
11+
-----
12+
<?php
13+
14+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\DocblockVarArrayFromPropertyDefaultsRector\Fixture;
15+
16+
final class OverrideDummyArrayVar
17+
{
18+
/**
19+
* @var string[]
20+
*/
21+
private array $names = ['Jim', 'Rohn'];
22+
}
23+
24+
?>

rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
1313
use Rector\Rector\AbstractRector;
1414
use Rector\TypeDeclarationDocblocks\NodeDocblockTypeDecorator;
15+
use Rector\TypeDeclarationDocblocks\TagNodeAnalyzer\UsefulArrayTagNodeAnalyzer;
1516
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
1617
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
1718

@@ -23,6 +24,7 @@ final class DocblockVarArrayFromPropertyDefaultsRector extends AbstractRector
2324
public function __construct(
2425
private readonly PhpDocInfoFactory $phpDocInfoFactory,
2526
private readonly NodeDocblockTypeDecorator $nodeDocblockTypeDecorator,
27+
private readonly UsefulArrayTagNodeAnalyzer $usefulArrayTagNodeAnalyzer
2628
) {
2729
}
2830

@@ -85,7 +87,7 @@ public function refactor(Node $node): ?Node
8587
$propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property);
8688

8789
// type is already known
88-
if ($propertyPhpDocInfo->getVarTagValueNode() instanceof VarTagValueNode) {
90+
if ($this->usefulArrayTagNodeAnalyzer->isUsefulArrayTag($propertyPhpDocInfo->getVarTagValueNode())) {
8991
continue;
9092
}
9193

0 commit comments

Comments
 (0)