Skip to content

Commit c96c2e7

Browse files
authored
skip object types in DocblockReturnArrayFromDirectArrayInstanceRector (#7373)
* skip object types in DocblockReturnArrayFromDirectArrayInstanceRector * fill known array types
1 parent d6ce8a2 commit c96c2e7

File tree

10 files changed

+43
-83
lines changed

10 files changed

+43
-83
lines changed

rector.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
codeQuality: true,
1414
codingStyle: true,
1515
typeDeclarations: true,
16-
// typeDeclarationDocblocks: true,
16+
typeDeclarationDocblocks: true,
1717
privatization: true,
1818
naming: true,
1919
instanceOf: true,

rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/Nesting/complex_array.php.inc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class ComplexArray
77
public function run(): array
88
{
99
return [
10-
'id' => new \stdClass(),
1110
'other' => false,
1211
'context' => [
1312
'id' => 1,
@@ -37,12 +36,11 @@ namespace Rector\Tests\TypeDeclarationDocblocks\Rector\ClassMethod\DocblockRetur
3736
class ComplexArray
3837
{
3938
/**
40-
* @return array<string, mixed>
39+
* @return array<string, array<string, array<string, string>|int>|array<string, int|string>|bool>
4140
*/
4241
public function run(): array
4342
{
4443
return [
45-
'id' => new \stdClass(),
4644
'other' => false,
4745
'context' => [
4846
'id' => 1,
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 SkipSoleType extends AbstractRector
12+
{
13+
public function getNodeTypes(): array
14+
{
15+
return [Class_::class];
16+
}
17+
18+
public function getRuleDefinition(): RuleDefinition
19+
{
20+
}
21+
22+
public function refactor(Node $node)
23+
{
24+
}
25+
}

rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/strip_empty_combine.php.inc

Lines changed: 0 additions & 78 deletions
This file was deleted.

rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public function __construct(
4646
) {
4747
}
4848

49+
/**
50+
* @param array<string, mixed> $configuration
51+
*/
4952
public function configure(array $configuration): void
5053
{
5154
$this->onlyDirectAssign = $configuration[self::ONLY_DIRECT_ASSIGN] ?? false;

rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ final class EncapsedStringsToSprintfRector extends AbstractRector implements Con
5555
*/
5656
private array $argumentVariables = [];
5757

58+
/**
59+
* @param array<string, mixed> $configuration
60+
*/
5861
public function configure(array $configuration): void
5962
{
6063
$this->always = $configuration[self::ALWAYS] ?? false;

rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,9 @@ public function __construct(
137137
);
138138
}
139139

140+
/**
141+
* @param array<string, mixed> $configuration
142+
*/
140143
public function configure(array $configuration): void
141144
{
142145
$this->inlinePublic = $configuration[self::INLINE_PUBLIC] ?? false;

rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ public function __construct(
6868
) {
6969
}
7070

71+
/**
72+
* @param array<string, mixed> $configuration
73+
*/
7174
public function configure(array $configuration): void
7275
{
7376
$this->inlinePublic = $configuration[self::INLINE_PUBLIC] ?? (bool) current($configuration);

rules/TypeDeclaration/Rector/StmtsAwareInterface/IncreaseDeclareStrictTypesRector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ public function refactor(Node $node): ?Node
121121
return null;
122122
}
123123

124+
/**
125+
* @param array<string, mixed> $configuration
126+
*/
124127
public function configure(array $configuration): void
125128
{
126129
Assert::keyExists($configuration, self::LIMIT);

rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public function refactor(Node $node): ?Node
106106
return null;
107107
}
108108

109-
if (count($returnedType->getReferencedClasses()) > 1) {
109+
if ($returnedType->getReferencedClasses() !== []) {
110110
// better handled by shared-interface/class rule, to avoid turning objects to mixed
111111
return null;
112112
}

0 commit comments

Comments
 (0)