From fd7bcda2ba7bdf48dfea1768869fab76f1381c62 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Thu, 2 Dec 2021 16:05:17 +0700 Subject: [PATCH 1/3] [Php81] Skip non private vmodifier on ReadOnlyPropertyRector --- .../Fixture/skip_non_private_property.php.inc | 18 ++++++++++++++++++ .../Fixture/skip_non_private_property2.php.inc | 16 ++++++++++++++++ .../Rector/Property/ReadOnlyPropertyRector.php | 7 ++++++- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property.php.inc create mode 100644 rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property2.php.inc diff --git a/rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property.php.inc b/rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property.php.inc new file mode 100644 index 00000000000..90af9531f8c --- /dev/null +++ b/rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property.php.inc @@ -0,0 +1,18 @@ +name = $name; + } + + public function getName() + { + return $this->name; + } +} diff --git a/rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property2.php.inc b/rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property2.php.inc new file mode 100644 index 00000000000..21d3dbeb3c4 --- /dev/null +++ b/rules-tests/Php81/Rector/Property/ReadOnlyPropertyRector/Fixture/skip_non_private_property2.php.inc @@ -0,0 +1,16 @@ +name; + } +} diff --git a/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php b/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php index f69cbc5b5d9..1adaef3a390 100644 --- a/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php +++ b/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php @@ -11,6 +11,7 @@ use Rector\Core\NodeManipulator\PropertyManipulator; use Rector\Core\Rector\AbstractRector; use Rector\Core\ValueObject\PhpVersionFeature; +use Rector\Core\ValueObject\Visibility; use Rector\Privatization\NodeManipulator\VisibilityManipulator; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -101,6 +102,10 @@ public function refactor(Node $node): ?Node return null; } + if ($node->flags !== Visibility::PRIVATE) { + return null; + } + $this->visibilityManipulator->makeReadonly($node); return $node; } @@ -112,7 +117,7 @@ public function provideMinPhpVersion(): int private function refactorParam(Param $param): Param | null { - if ($param->flags === 0) { + if ($param->flags !== Visibility::PRIVATE) { return null; } From eaa2b7ff54c315365d74846638d325323e4a4d40 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 2 Dec 2021 09:09:43 +0000 Subject: [PATCH 2/3] [ci-review] Rector Rectify --- rules/Privatization/NodeManipulator/VisibilityManipulator.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rules/Privatization/NodeManipulator/VisibilityManipulator.php b/rules/Privatization/NodeManipulator/VisibilityManipulator.php index a996f1c1848..b62f4a5c778 100644 --- a/rules/Privatization/NodeManipulator/VisibilityManipulator.php +++ b/rules/Privatization/NodeManipulator/VisibilityManipulator.php @@ -12,6 +12,9 @@ use Rector\Core\ValueObject\Visibility; use Webmozart\Assert\Assert; +/** + * @see \Rector\Tests\Privatization\NodeManipulator\VisibilityManipulatorTest + */ final class VisibilityManipulator { public function hasVisibility(ClassMethod | Property | ClassConst | Param $node, int $visibility): bool From a52317cae8aef0e366c4a472d441d8c379567f2e Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 2 Dec 2021 09:10:02 +0000 Subject: [PATCH 3/3] [ci-review] Rector Rectify --- .../NodeManipulator/VisibilityManipulatorTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rules-tests/Privatization/NodeManipulator/VisibilityManipulatorTest.php b/rules-tests/Privatization/NodeManipulator/VisibilityManipulatorTest.php index 0731a294a93..85e6de50c1e 100644 --- a/rules-tests/Privatization/NodeManipulator/VisibilityManipulatorTest.php +++ b/rules-tests/Privatization/NodeManipulator/VisibilityManipulatorTest.php @@ -21,9 +21,9 @@ protected function setUp(): void public function test(): void { - $node = new ClassMethod('SomeClass'); - $node->flags = Visibility::PUBLIC | Visibility::STATIC; - $this->visibilityManipulator->changeNodeVisibility($node, Visibility::PROTECTED); - $this->assertSame(Visibility::PROTECTED | Visibility::STATIC, $node->flags); + $classMethod = new ClassMethod('SomeClass'); + $classMethod->flags = Visibility::PUBLIC | Visibility::STATIC; + $this->visibilityManipulator->changeNodeVisibility($classMethod, Visibility::PROTECTED); + $this->assertSame(Visibility::PROTECTED | Visibility::STATIC, $classMethod->flags); } }