From 4e1924b22818ea95a374b5b3467c7f0b80e92d52 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 5 Jun 2023 11:27:38 +0200 Subject: [PATCH 1/2] Remove removeNode() from TargetRemoveClassMethodRector --- .../Class_/TargetRemoveClassMethodRector.php | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php b/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php index e9b33fb81c0..0000ab60262 100644 --- a/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php +++ b/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php @@ -68,18 +68,29 @@ public function refactor(Node $node): ?Node return null; } + $hasChanged = false; + foreach ($this->targetRemoveClassMethods as $targetRemoveClassMethod) { if (! $this->isName($node, $targetRemoveClassMethod->getClassName())) { continue; } - $classMethod = $node->getMethod($targetRemoveClassMethod->getMethodName()); - if (! $classMethod instanceof ClassMethod) { - continue; + foreach ($node->stmts as $key => $stmt) { + if (! $stmt instanceof ClassMethod) { + continue; + } + + if (! $this->isName($stmt, $targetRemoveClassMethod->getMethodName())) { + continue; + } + + unset($node->stmts[$key]); + $hasChanged = true; } + } - $this->removeNode($classMethod); - return null; + if ($hasChanged) { + return $node; } return null; From 75b1162c2ac2d383f663a449c4046f0fe9774bad Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 5 Jun 2023 11:29:12 +0200 Subject: [PATCH 2/2] Remove TargetRemoveClassMethodRector, as IDE specific --- .../Fixture/some_class.php.inc | 22 ---- .../TargetRemoveClassMethodRectorTest.php | 31 ----- .../config/configured_rule.php | 16 --- .../Class_/TargetRemoveClassMethodRector.php | 109 ------------------ .../ValueObject/TargetRemoveClassMethod.php | 24 ---- 5 files changed, 202 deletions(-) delete mode 100644 rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/Fixture/some_class.php.inc delete mode 100644 rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/TargetRemoveClassMethodRectorTest.php delete mode 100644 rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/config/configured_rule.php delete mode 100644 rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php delete mode 100644 rules/DeadCode/ValueObject/TargetRemoveClassMethod.php diff --git a/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/Fixture/some_class.php.inc b/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/Fixture/some_class.php.inc deleted file mode 100644 index a120ea9ff1a..00000000000 --- a/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/Fixture/some_class.php.inc +++ /dev/null @@ -1,22 +0,0 @@ - ------ - diff --git a/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/TargetRemoveClassMethodRectorTest.php b/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/TargetRemoveClassMethodRectorTest.php deleted file mode 100644 index 3413f8e42c6..00000000000 --- a/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/TargetRemoveClassMethodRectorTest.php +++ /dev/null @@ -1,31 +0,0 @@ -doTestFile($filePath); - } - - /** - * @return Iterator - */ - public static function provideData(): Iterator - { - return self::yieldFilesFromDirectory(__DIR__ . '/Fixture'); - } - - public function provideConfigFilePath(): string - { - return __DIR__ . '/config/configured_rule.php'; - } -} diff --git a/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/config/configured_rule.php b/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/config/configured_rule.php deleted file mode 100644 index 09af0d560db..00000000000 --- a/rules-tests/DeadCode/Rector/Class_/TargetRemoveClassMethodRector/config/configured_rule.php +++ /dev/null @@ -1,16 +0,0 @@ -ruleWithConfiguration(TargetRemoveClassMethodRector::class, [ - new TargetRemoveClassMethod( - 'Rector\Tests\DeadCode\Rector\Class_\TargetRemoveClassMethodRector\Fixture\SomeClass', - 'removeMe' - ), - ]); -}; diff --git a/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php b/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php deleted file mode 100644 index 0000ab60262..00000000000 --- a/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php +++ /dev/null @@ -1,109 +0,0 @@ -classAnalyzer->isAnonymousClass($node)) { - return null; - } - - $hasChanged = false; - - foreach ($this->targetRemoveClassMethods as $targetRemoveClassMethod) { - if (! $this->isName($node, $targetRemoveClassMethod->getClassName())) { - continue; - } - - foreach ($node->stmts as $key => $stmt) { - if (! $stmt instanceof ClassMethod) { - continue; - } - - if (! $this->isName($stmt, $targetRemoveClassMethod->getMethodName())) { - continue; - } - - unset($node->stmts[$key]); - $hasChanged = true; - } - } - - if ($hasChanged) { - return $node; - } - - return null; - } - - /** - * @param mixed[] $configuration - */ - public function configure(array $configuration): void - { - Assert::notEmpty($configuration); - Assert::allIsInstanceOf($configuration, TargetRemoveClassMethod::class); - - $this->targetRemoveClassMethods = $configuration; - } -} diff --git a/rules/DeadCode/ValueObject/TargetRemoveClassMethod.php b/rules/DeadCode/ValueObject/TargetRemoveClassMethod.php deleted file mode 100644 index b7b8dfa3af3..00000000000 --- a/rules/DeadCode/ValueObject/TargetRemoveClassMethod.php +++ /dev/null @@ -1,24 +0,0 @@ -className; - } - - public function getMethodName(): string - { - return $this->methodName; - } -}