Skip to content

Commit 00af33a

Browse files
[Rectify] [Php81] Enable Rectify on ArraySpreadInsteadOfArrayMergeRector on php 8.1 (#1383)
* [Rectify] [Php81] Enable ArraySpreadInsteadOfArrayMergeRector only * [ci-review] Rector Rectify * [ci-review] Rector Rectify * phpstan * [ci-review] Rector Rectify Co-authored-by: GitHub Action <action@github.com>
1 parent fc10fce commit 00af33a

6 files changed

Lines changed: 14 additions & 13 deletions

File tree

rector.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
use Rector\Core\Configuration\Option;
1212
use Rector\Nette\Set\NetteSetList;
1313
use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector;
14-
use Rector\Php74\Rector\FuncCall\ArraySpreadInsteadOfArrayMergeRector;
1514
use Rector\Php81\Rector\Class_\MyCLabsClassToEnumRector;
1615
use Rector\Php81\Rector\Class_\SpatieEnumClassToEnumRector;
1716
use Rector\Php81\Rector\ClassConst\FinalizePublicClassConstantRector;
@@ -87,11 +86,7 @@
8786
MyCLabsClassToEnumRector::class,
8887
SpatieEnumClassToEnumRector::class,
8988

90-
// temporary skip it to avoid unrelated change string key array unpack on php 8.1 PR https://github.com/rectorphp/rector-src/pull/1380
91-
// @todo remove when enabling it on different PR
92-
ArraySpreadInsteadOfArrayMergeRector::class,
93-
94-
// temporary skip non readonly property rector
89+
// temporary skip all with enable ArraySpreadInsteadOfArrayMergeRector
9590
ReturnNeverTypeRector::class,
9691
FinalizePublicClassConstantRector::class,
9792
MyCLabsMethodCallToEnumConstRector::class,

rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public function __construct(
2929
public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType, Node $node): bool
3030
{
3131
// "new X" or "X::static()"
32+
/** @var array<string, string> $shortNamesToFullyQualifiedNames */
3233
$shortNamesToFullyQualifiedNames = $this->shortNameResolver->resolveFromFile($file);
3334
$loweredShortNameFullyQualified = $fullyQualifiedObjectType->getShortNameLowered();
3435

rules/CodingStyle/ClassNameImport/ShortNameResolver.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,9 @@ private function resolveForStmts(array $stmts): array
143143
});
144144

145145
$docBlockShortNamesToFullyQualifiedNames = $this->resolveFromStmtsDocBlocks($stmts);
146-
return array_merge($shortNamesToFullyQualifiedNames, $docBlockShortNamesToFullyQualifiedNames);
146+
/** @var array<string, string> $result */
147+
$result = [...$shortNamesToFullyQualifiedNames, ...$docBlockShortNamesToFullyQualifiedNames];
148+
return $result;
147149
}
148150

149151
/**

rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,9 @@ private function replaceMockCreationsAndCollectVariableNames(ClassMethod $classM
102102

103103
$collectedVariableTypesByNames = $this->mockVariableCollector->collectMockVariableName($node);
104104

105-
$this->mockVariableTypesByNames = array_merge(
106-
$this->mockVariableTypesByNames,
107-
$collectedVariableTypesByNames
108-
);
105+
/** @var array<string, class-string> $result */
106+
$result = [...$this->mockVariableTypesByNames, ...$collectedVariableTypesByNames];
107+
$this->mockVariableTypesByNames = $result;
109108

110109
$parentNode = $node->getAttribute(AttributeKey::PARENT_NODE);
111110
if ($parentNode instanceof Arg) {

src/Configuration/RenamedClassesDataCollector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ public function hasOldClass(string $oldClass): bool
2828
*/
2929
public function addOldToNewClasses(array $oldToNewClasses): void
3030
{
31-
$this->oldToNewClasses = array_merge($this->oldToNewClasses, $oldToNewClasses);
31+
/** @var array<string, string> $oldToNewClasses */
32+
$oldToNewClasses = [...$this->oldToNewClasses, ...$oldToNewClasses];
33+
$this->oldToNewClasses = $oldToNewClasses;
3234
}
3335

3436
/**

src/NonPhpFile/Rector/RenameClassNonPhpRector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,9 @@ private function addDoubleSlahed(array $classRenames): array
139139
*/
140140
private function getRenameClasses(): array
141141
{
142-
return array_merge($this->renameClasses, $this->renamedClassesDataCollector->getOldToNewClasses());
142+
/** @var array<string, string> $renameClasses */
143+
$renameClasses = [...$this->renameClasses, ...$this->renamedClassesDataCollector->getOldToNewClasses()];
144+
return $renameClasses;
143145
}
144146

145147
private function createOldClassRegex(string $oldClass): string

0 commit comments

Comments
 (0)