88use PhpParser \Node \Stmt \Class_ ;
99use PhpParser \Node \Stmt \ClassMethod ;
1010use PhpParser \Node \Stmt \Property ;
11- use PHPStan \PhpDocParser \Ast \PhpDoc \VarTagValueNode ;
1211use PHPStan \Type \ArrayType ;
1312use Rector \BetterPhpDocParser \PhpDocInfo \PhpDocInfoFactory ;
1413use Rector \Rector \AbstractRector ;
1514use Rector \TypeDeclarationDocblocks \NodeAnalyzer \ConstructorAssignedTypeResolver ;
1615use Rector \TypeDeclarationDocblocks \NodeDocblockTypeDecorator ;
16+ use Rector \TypeDeclarationDocblocks \TagNodeAnalyzer \UsefulArrayTagNodeAnalyzer ;
1717use Rector \ValueObject \MethodName ;
1818use Symplify \RuleDocGenerator \ValueObject \CodeSample \CodeSample ;
1919use Symplify \RuleDocGenerator \ValueObject \RuleDefinition ;
@@ -26,6 +26,7 @@ final class DocblockVarFromParamDocblockInConstructorRector extends AbstractRect
2626 public function __construct (
2727 private readonly PhpDocInfoFactory $ phpDocInfoFactory ,
2828 private readonly ConstructorAssignedTypeResolver $ constructorAssignedTypeResolver ,
29+ private readonly UsefulArrayTagNodeAnalyzer $ usefulArrayTagNodeAnalyzer ,
2930 private readonly NodeDocblockTypeDecorator $ nodeDocblockTypeDecorator
3031 ) {
3132 }
@@ -96,7 +97,7 @@ public function refactor(Node $node): ?Node
9697 $ propertyPhpDocInfo = $ this ->phpDocInfoFactory ->createFromNodeOrEmpty ($ property );
9798
9899 // @var tag already given
99- if ($ propertyPhpDocInfo ->getVarTagValueNode () instanceof VarTagValueNode ) {
100+ if ($ this -> usefulArrayTagNodeAnalyzer -> isUsefulArrayTag ( $ propertyPhpDocInfo ->getVarTagValueNode ()) ) {
100101 continue ;
101102 }
102103
0 commit comments