diff --git a/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute_inline.php.inc b/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute_inline.php.inc index 55e7fb89d6f..3db05763049 100644 --- a/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute_inline.php.inc +++ b/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute_inline.php.inc @@ -13,8 +13,7 @@ namespace Rector\Tests\Php82\Rector\Class_\ReadOnlyClassRector\Fixture; namespace Rector\Tests\Php82\Rector\Class_\ReadOnlyClassRector\Fixture; -#[SomeAttribute] -final readonly class ClassWithAttributeInline +#[SomeAttribute]final readonly class ClassWithAttributeInline { private string $property; } diff --git a/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute.php.inc b/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute_new_line.php.inc similarity index 77% rename from rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute.php.inc rename to rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute_new_line.php.inc index 46549b96068..f1d67ec70c4 100644 --- a/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute.php.inc +++ b/rules-tests/Php82/Rector/Class_/ReadOnlyClassRector/Fixture/class_with_attribute_new_line.php.inc @@ -3,7 +3,7 @@ namespace Rector\Tests\Php82\Rector\Class_\ReadOnlyClassRector\Fixture; #[SomeAttribute] -final class ClassWithAttribute +final class ClassWithAttributeNewLine { private readonly string $property; } @@ -15,7 +15,7 @@ final class ClassWithAttribute namespace Rector\Tests\Php82\Rector\Class_\ReadOnlyClassRector\Fixture; #[SomeAttribute] -final readonly class ClassWithAttribute +final readonly class ClassWithAttributeNewLine { private string $property; } diff --git a/rules-tests/Privatization/Rector/Class_/FinalizeTestCaseClassRector/Fixture/with_attribute.php.inc b/rules-tests/Privatization/Rector/Class_/FinalizeTestCaseClassRector/Fixture/with_attribute_new_line.php.inc similarity index 78% rename from rules-tests/Privatization/Rector/Class_/FinalizeTestCaseClassRector/Fixture/with_attribute.php.inc rename to rules-tests/Privatization/Rector/Class_/FinalizeTestCaseClassRector/Fixture/with_attribute_new_line.php.inc index a7dd9bf80d4..d44c6e64f13 100644 --- a/rules-tests/Privatization/Rector/Class_/FinalizeTestCaseClassRector/Fixture/with_attribute.php.inc +++ b/rules-tests/Privatization/Rector/Class_/FinalizeTestCaseClassRector/Fixture/with_attribute_new_line.php.inc @@ -5,7 +5,7 @@ namespace Rector\Tests\Privatization\Rector\Class_\FinalizeTestCaseClassRector\F use PHPUnit\Framework\TestCase; #[CoversClass(Advisor::class)] -class WithAttribute extends TestCase +class WithAttributeNewLine extends TestCase { } @@ -18,7 +18,7 @@ namespace Rector\Tests\Privatization\Rector\Class_\FinalizeTestCaseClassRector\F use PHPUnit\Framework\TestCase; #[CoversClass(Advisor::class)] -final class WithAttribute extends TestCase +final class WithAttributeNewLine extends TestCase { } diff --git a/rules/Php81/NodeManipulator/AttributeGroupNewLiner.php b/rules/Php81/NodeManipulator/AttributeGroupNewLiner.php deleted file mode 100644 index 9d0c41bc9ee..00000000000 --- a/rules/Php81/NodeManipulator/AttributeGroupNewLiner.php +++ /dev/null @@ -1,73 +0,0 @@ -attrGroups; - - if ($attrGroups === []) { - return; - } - - Assert::allIsAOf($attrGroups, AttributeGroup::class); - Assert::isArray($attrGroups); - - $oldTokens = $file->getOldTokens(); - $startTokenPos = $class->getStartTokenPos(); - - if (! isset($oldTokens[$startTokenPos])) { - return; - } - - if ($oldTokens[$startTokenPos]->text !== '#[') { - return; - } - - $iteration = 1; - $lastKey = array_key_last($attrGroups); - - if ($lastKey === null) { - return; - } - - $lastAttributeTokenPos = $attrGroups[$lastKey]->getEndTokenPos(); - - while (isset($oldTokens[$startTokenPos + $iteration])) { - if ($startTokenPos + $iteration === $lastAttributeTokenPos) { - if ($oldTokens[$startTokenPos + $iteration]->text !== ']') { - break; - } - - $nextTokenText = $oldTokens[$startTokenPos + $iteration + 1]->text ?? ''; - if (trim($nextTokenText) === '') { - // when trimmed is empty string, but original text contains new line - // no need to add another new line - if (str_contains($nextTokenText, "\n") || str_contains($nextTokenText, "\r")) { - break; - } - - $space = ltrim($nextTokenText, "\r\n"); - } elseif (trim($oldTokens[$startTokenPos - 1]->text ?? '') === '') { - $space = ltrim($oldTokens[$startTokenPos - 1]->text ?? '', "\r\n"); - } else { - $space = ''; - } - - $oldTokens[$startTokenPos + $iteration]->text = "]\n" . $space; - break; - } - - ++$iteration; - } - } -} diff --git a/rules/Php82/NodeManipulator/ReadonlyClassManipulator.php b/rules/Php82/NodeManipulator/ReadonlyClassManipulator.php index ea58dade97b..a24ee847841 100644 --- a/rules/Php82/NodeManipulator/ReadonlyClassManipulator.php +++ b/rules/Php82/NodeManipulator/ReadonlyClassManipulator.php @@ -15,10 +15,8 @@ use PHPStan\Reflection\ReflectionProvider; use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; use Rector\Php81\Enum\AttributeName; -use Rector\Php81\NodeManipulator\AttributeGroupNewLiner; use Rector\PHPStan\ScopeFetcher; use Rector\Privatization\NodeManipulator\VisibilityManipulator; -use Rector\ValueObject\Application\File; use Rector\ValueObject\MethodName; use Rector\ValueObject\Visibility; @@ -27,12 +25,11 @@ public function __construct( private VisibilityManipulator $visibilityManipulator, private PhpAttributeAnalyzer $phpAttributeAnalyzer, - private ReflectionProvider $reflectionProvider, - private AttributeGroupNewLiner $attributeGroupNewLiner + private ReflectionProvider $reflectionProvider ) { } - public function process(Class_ $class, File $file): Class_|null + public function process(Class_ $class): Class_|null { $scope = ScopeFetcher::fetch($class); if ($this->shouldSkip($class, $scope)) { @@ -53,10 +50,6 @@ public function process(Class_ $class, File $file): Class_|null $this->visibilityManipulator->removeReadonly($property); } - if ($class->attrGroups !== []) { - $this->attributeGroupNewLiner->newLine($file, $class); - } - return $class; } diff --git a/rules/Php82/Rector/Class_/ReadOnlyClassRector.php b/rules/Php82/Rector/Class_/ReadOnlyClassRector.php index 41b58be53a7..8aad77813c9 100644 --- a/rules/Php82/Rector/Class_/ReadOnlyClassRector.php +++ b/rules/Php82/Rector/Class_/ReadOnlyClassRector.php @@ -68,7 +68,7 @@ public function refactor(Node $node): ?Node return null; } - return $this->readonlyClassManipulator->process($node, $this->file); + return $this->readonlyClassManipulator->process($node); } public function provideMinPhpVersion(): int diff --git a/rules/Php83/Rector/Class_/ReadOnlyAnonymousClassRector.php b/rules/Php83/Rector/Class_/ReadOnlyAnonymousClassRector.php index a64bff2986e..f3ac0a0cdd9 100644 --- a/rules/Php83/Rector/Class_/ReadOnlyAnonymousClassRector.php +++ b/rules/Php83/Rector/Class_/ReadOnlyAnonymousClassRector.php @@ -68,7 +68,7 @@ public function refactor(Node $node): ?Node return null; } - return $this->readonlyClassManipulator->process($node, $this->file); + return $this->readonlyClassManipulator->process($node); } public function provideMinPhpVersion(): int diff --git a/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php b/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php index ab709b7feb1..0a8db64329d 100644 --- a/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php +++ b/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php @@ -7,7 +7,6 @@ use PhpParser\Node; use PhpParser\Node\Stmt\Class_; use PHPStan\Reflection\ReflectionProvider; -use Rector\Php81\NodeManipulator\AttributeGroupNewLiner; use Rector\Privatization\NodeManipulator\VisibilityManipulator; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -20,8 +19,7 @@ final class FinalizeTestCaseClassRector extends AbstractRector { public function __construct( private readonly ReflectionProvider $reflectionProvider, - private readonly VisibilityManipulator $visibilityManipulator, - private readonly AttributeGroupNewLiner $attributeGroupNewLiner + private readonly VisibilityManipulator $visibilityManipulator ) { } @@ -85,10 +83,6 @@ public function refactor(Node $node): ?Node return null; } - if ($node->attrGroups !== []) { - $this->attributeGroupNewLiner->newLine($this->file, $node); - } - $this->visibilityManipulator->makeFinal($node); return $node;