[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>
This commit is contained in:
Abdul Malik Ikhsan 2021-12-04 19:47:07 +07:00 committed by GitHub
parent fc10fce13d
commit 00af33a5d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 13 deletions

View File

@ -11,7 +11,6 @@ use Rector\CodingStyle\ValueObject\ReturnArrayClassMethodToYield;
use Rector\Core\Configuration\Option;
use Rector\Nette\Set\NetteSetList;
use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector;
use Rector\Php74\Rector\FuncCall\ArraySpreadInsteadOfArrayMergeRector;
use Rector\Php81\Rector\Class_\MyCLabsClassToEnumRector;
use Rector\Php81\Rector\Class_\SpatieEnumClassToEnumRector;
use Rector\Php81\Rector\ClassConst\FinalizePublicClassConstantRector;
@ -87,11 +86,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
MyCLabsClassToEnumRector::class,
SpatieEnumClassToEnumRector::class,
// temporary skip it to avoid unrelated change string key array unpack on php 8.1 PR https://github.com/rectorphp/rector-src/pull/1380
// @todo remove when enabling it on different PR
ArraySpreadInsteadOfArrayMergeRector::class,
// temporary skip non readonly property rector
// temporary skip all with enable ArraySpreadInsteadOfArrayMergeRector
ReturnNeverTypeRector::class,
FinalizePublicClassConstantRector::class,
MyCLabsMethodCallToEnumConstRector::class,

View File

@ -29,6 +29,7 @@ final class FullyQualifiedNameClassNameImportSkipVoter implements ClassNameImpor
public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType, Node $node): bool
{
// "new X" or "X::static()"
/** @var array<string, string> $shortNamesToFullyQualifiedNames */
$shortNamesToFullyQualifiedNames = $this->shortNameResolver->resolveFromFile($file);
$loweredShortNameFullyQualified = $fullyQualifiedObjectType->getShortNameLowered();

View File

@ -143,7 +143,9 @@ final class ShortNameResolver
});
$docBlockShortNamesToFullyQualifiedNames = $this->resolveFromStmtsDocBlocks($stmts);
return array_merge($shortNamesToFullyQualifiedNames, $docBlockShortNamesToFullyQualifiedNames);
/** @var array<string, string> $result */
$result = [...$shortNamesToFullyQualifiedNames, ...$docBlockShortNamesToFullyQualifiedNames];
return $result;
}
/**

View File

@ -102,10 +102,9 @@ CODE_SAMPLE
$collectedVariableTypesByNames = $this->mockVariableCollector->collectMockVariableName($node);
$this->mockVariableTypesByNames = array_merge(
$this->mockVariableTypesByNames,
$collectedVariableTypesByNames
);
/** @var array<string, class-string> $result */
$result = [...$this->mockVariableTypesByNames, ...$collectedVariableTypesByNames];
$this->mockVariableTypesByNames = $result;
$parentNode = $node->getAttribute(AttributeKey::PARENT_NODE);
if ($parentNode instanceof Arg) {

View File

@ -28,7 +28,9 @@ final class RenamedClassesDataCollector
*/
public function addOldToNewClasses(array $oldToNewClasses): void
{
$this->oldToNewClasses = array_merge($this->oldToNewClasses, $oldToNewClasses);
/** @var array<string, string> $oldToNewClasses */
$oldToNewClasses = [...$this->oldToNewClasses, ...$oldToNewClasses];
$this->oldToNewClasses = $oldToNewClasses;
}
/**

View File

@ -139,7 +139,9 @@ CODE_SAMPLE
*/
private function getRenameClasses(): array
{
return array_merge($this->renameClasses, $this->renamedClassesDataCollector->getOldToNewClasses());
/** @var array<string, string> $renameClasses */
$renameClasses = [...$this->renameClasses, ...$this->renamedClassesDataCollector->getOldToNewClasses()];
return $renameClasses;
}
private function createOldClassRegex(string $oldClass): string