Skip to content

Commit 24d7be4

Browse files
authored
Skip multiple objects on DocblockReturnArrayFromDirectArrayInstanceRector (#7368)
* add fixture * skip multiple objects on DocblockReturnArrayFromDirectArrayInstanceRector
1 parent fbb95aa commit 24d7be4

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\ClassMethod\DocblockReturnArrayFromDirectArrayInstanceRector\Fixture;
4+
5+
use PhpParser\Node;
6+
use PhpParser\Node\Stmt\Class_;
7+
use PhpParser\Node\Stmt\ClassMethod;
8+
use Rector\Rector\AbstractRector;
9+
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
10+
11+
final class SkipMultipleObjectTypes extends AbstractRector
12+
{
13+
public function getNodeTypes(): array
14+
{
15+
return [Class_::class, ClassMethod::class];
16+
}
17+
18+
public function getRuleDefinition(): RuleDefinition
19+
{
20+
}
21+
22+
public function refactor(Node $node)
23+
{
24+
}
25+
}

rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ public function refactor(Node $node): ?Node
106106
return null;
107107
}
108108

109+
if (count($returnedType->getReferencedClasses()) > 1) {
110+
// better handled by shared-interface/class rule, to avoid turning objects to mixed
111+
return null;
112+
}
113+
109114
$genericTypeNode = $this->constantArrayTypeGeneralizer->generalize($returnedType);
110115
$this->phpDocTypeChanger->changeReturnTypeNode($node, $phpDocInfo, $genericTypeNode);
111116

0 commit comments

Comments
 (0)