Skip to content

Commit 9a44c19

Browse files
authored
[Transform] Transform rules() to withRules() on RectorConfigBuilderRector (#5566)
1 parent 09398c3 commit 9a44c19

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Rector\Config\RectorConfig;
6+
use Rector\Transform\Rector\FileWithoutNamespace\RectorConfigBuilderRector;
7+
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnUnionTypeRector;
8+
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromAssignsRector;
9+
10+
return static function (RectorConfig $rectorConfig): void {
11+
$rectorConfig->rule(ReturnUnionTypeRector::class);
12+
$rectorConfig->rules([
13+
RectorConfigBuilderRector::class,
14+
TypedPropertyFromAssignsRector::class
15+
]);
16+
};
17+
18+
?>
19+
-----
20+
<?php
21+
22+
declare(strict_types=1);
23+
24+
use Rector\Config\RectorConfig;
25+
use Rector\Transform\Rector\FileWithoutNamespace\RectorConfigBuilderRector;
26+
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnUnionTypeRector;
27+
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromAssignsRector;
28+
29+
return \Rector\Config\RectorConfig::configure()->withRules([ReturnUnionTypeRector::class, RectorConfigBuilderRector::class, TypedPropertyFromAssignsRector::class]);
30+
31+
?>

rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use Rector\Rector\AbstractRector;
2020
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
2121
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
22+
use Webmozart\Assert\Assert;
2223

2324
/**
2425
* @see \Rector\Tests\Transform\Rector\FileWithoutNamespace\RectorConfigBuilderRector\RectorConfigBuilderRectorTest
@@ -108,6 +109,9 @@ public function refactor(Node $node): ?Node
108109

109110
if ($this->isName($rectorConfigStmt->expr->name, 'rule')) {
110111
$rules->items[] = new ArrayItem($rectorConfigStmt->expr->getArgs()[0]->value);
112+
} elseif ($this->isName($rectorConfigStmt->expr->name, 'rules')) {
113+
Assert::isAOf($rectorConfigStmt->expr->getArgs()[0]->value, Array_::class);
114+
$rules->items = array_merge($rules->items, $rectorConfigStmt->expr->getArgs()[0]->value->items);
111115
} else {
112116
// implementing method by method
113117
return null;

0 commit comments

Comments
 (0)