Skip to content

Commit c614318

Browse files
authored
[TypeDeclarationDocblocks] Allow override dummy array var on DocblockVarArrayFromPropertyDefaultsRector (#7383)
* [TypeDeclarationDocblocks] Allow override dummy array var on DocblockVarArrayFromPropertyDefaultsRector * [TypeDeclarationDocblocks] Allow override dummy array var on DocblockVarArrayFromPropertyDefaultsRector * [TypeDeclarationDocblocks] Allow override dummy array var on DocblockVarArrayFromPropertyDefaultsRector
1 parent bf39095 commit c614318

File tree

3 files changed

+30
-5
lines changed

3 files changed

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

rules/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
use PhpParser\Node;
88
use PhpParser\Node\Param;
99
use PhpParser\Node\Stmt\Class_;
10-
use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode;
11-
use PHPStan\Type\ArrayType;
12-
use PHPStan\Type\MixedType;
1310
use PHPStan\Type\Type;
1411
use PHPStan\Type\TypeCombinator;
1512
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;

rules/TypeDeclarationDocblocks/Rector/Class_/DocblockVarArrayFromPropertyDefaultsRector.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
use PhpParser\Node\Expr\Array_;
99
use PhpParser\Node\Identifier;
1010
use PhpParser\Node\Stmt\Class_;
11-
use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode;
1211
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
1312
use Rector\Rector\AbstractRector;
1413
use Rector\TypeDeclarationDocblocks\NodeDocblockTypeDecorator;
14+
use Rector\TypeDeclarationDocblocks\TagNodeAnalyzer\UsefulArrayTagNodeAnalyzer;
1515
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
1616
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
1717

@@ -23,6 +23,7 @@ final class DocblockVarArrayFromPropertyDefaultsRector extends AbstractRector
2323
public function __construct(
2424
private readonly PhpDocInfoFactory $phpDocInfoFactory,
2525
private readonly NodeDocblockTypeDecorator $nodeDocblockTypeDecorator,
26+
private readonly UsefulArrayTagNodeAnalyzer $usefulArrayTagNodeAnalyzer
2627
) {
2728
}
2829

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

8788
// type is already known
88-
if ($propertyPhpDocInfo->getVarTagValueNode() instanceof VarTagValueNode) {
89+
if ($this->usefulArrayTagNodeAnalyzer->isUsefulArrayTag($propertyPhpDocInfo->getVarTagValueNode())) {
8990
continue;
9091
}
9192

0 commit comments

Comments
 (0)