diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md
index eef283ea16c..fef5ae24d16 100644
--- a/docs/rector_rules_overview.md
+++ b/docs/rector_rules_overview.md
@@ -1,4 +1,4 @@
-# 416 Rules Overview
+# 417 Rules Overview
@@ -12,7 +12,7 @@
- [Compatibility](#compatibility) (1)
-- [DeadCode](#deadcode) (47)
+- [DeadCode](#deadcode) (48)
- [DependencyInjection](#dependencyinjection) (2)
@@ -3664,6 +3664,40 @@ Removes unneeded `$value` = `$value` assigns
+### TargetRemoveClassMethodRector
+
+Remove defined class method
+
+:wrench: **configure it!**
+
+- class: [`Rector\DeadCode\Rector\Class_\TargetRemoveClassMethodRector`](../rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php)
+
+```php
+use Rector\Config\RectorConfig;
+use Rector\DeadCode\Rector\Class_\TargetRemoveClassMethodRector;
+use Rector\DeadCode\ValueObject\TargetRemoveClassMethod;
+
+return static function (RectorConfig $rectorConfig): void {
+ $rectorConfig->ruleWithConfiguration(
+ TargetRemoveClassMethodRector::class,
+ [new TargetRemoveClassMethod('SomeClass', 'run')]
+ );
+};
+```
+
+↓
+
+```diff
+ class SomeClass
+ {
+- public function run()
+- {
+- }
+ }
+```
+
+
+
### TernaryToBooleanOrFalseToBooleanAndRector
Change ternary of bool : false to && bool
diff --git a/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php b/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php
new file mode 100644
index 00000000000..50da52d651e
--- /dev/null
+++ b/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php
@@ -0,0 +1,75 @@
+isAnonymous()) {
+ return null;
+ }
+ foreach ($this->targetRemoveClassMethods as $targetRemoveClassMethod) {
+ if (!$this->isName($node, $targetRemoveClassMethod->getClassName())) {
+ continue;
+ }
+ $classMethod = $node->getMethod($targetRemoveClassMethod->getMethodName());
+ if (!$classMethod instanceof ClassMethod) {
+ continue;
+ }
+ $this->removeNode($classMethod);
+ return null;
+ }
+ 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
new file mode 100644
index 00000000000..4b5950d0a5f
--- /dev/null
+++ b/rules/DeadCode/ValueObject/TargetRemoveClassMethod.php
@@ -0,0 +1,31 @@
+className = $className;
+ $this->methodName = $methodName;
+ }
+ public function getClassName() : string
+ {
+ return $this->className;
+ }
+ public function getMethodName() : string
+ {
+ return $this->methodName;
+ }
+}
diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php
index ec8e3faa08e..9d830ea5302 100644
--- a/src/Application/VersionResolver.php
+++ b/src/Application/VersionResolver.php
@@ -17,12 +17,12 @@ final class VersionResolver
* @api
* @var string
*/
- public const PACKAGE_VERSION = 'c78e255cf9cb17cedead84ff8a54f421f563942d';
+ public const PACKAGE_VERSION = '70fea54e77ffd186e41540d2b36c5362b073fbc4';
/**
* @api
* @var string
*/
- public const RELEASE_DATE = '2022-12-22 16:49:11';
+ public const RELEASE_DATE = '2022-12-22 18:02:44';
/**
* @var int
*/
diff --git a/vendor/autoload.php b/vendor/autoload.php
index c95a5a7d3f9..3f82b394b69 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
require_once __DIR__ . '/composer/autoload_real.php';
-return ComposerAutoloaderInit099468b8f0503dfa63adfbd0082c61cf::getLoader();
+return ComposerAutoloaderInitf4223b92917874ab1dbad62f3f4ea2d4::getLoader();
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index a4ec1994809..a53b8ecf485 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -1566,6 +1566,7 @@ return array(
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPromotedPropertyRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php',
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessParamTagRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php',
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessReturnTagRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php',
+ 'Rector\\DeadCode\\Rector\\Class_\\TargetRemoveClassMethodRector' => $baseDir . '/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php',
'Rector\\DeadCode\\Rector\\Concat\\RemoveConcatAutocastRector' => $baseDir . '/rules/DeadCode/Rector/Concat/RemoveConcatAutocastRector.php',
'Rector\\DeadCode\\Rector\\ConstFetch\\RemovePhpVersionIdCheckRector' => $baseDir . '/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php',
'Rector\\DeadCode\\Rector\\Expression\\RemoveDeadStmtRector' => $baseDir . '/rules/DeadCode/Rector/Expression/RemoveDeadStmtRector.php',
@@ -1603,6 +1604,7 @@ return array(
'Rector\\DeadCode\\UselessIfCondBeforeForeachDetector' => $baseDir . '/rules/DeadCode/UselessIfCondBeforeForeachDetector.php',
'Rector\\DeadCode\\ValueObject\\BinaryToVersionCompareCondition' => $baseDir . '/rules/DeadCode/ValueObject/BinaryToVersionCompareCondition.php',
'Rector\\DeadCode\\ValueObject\\PropertyFetchToVariableAssign' => $baseDir . '/rules/DeadCode/ValueObject/PropertyFetchToVariableAssign.php',
+ 'Rector\\DeadCode\\ValueObject\\TargetRemoveClassMethod' => $baseDir . '/rules/DeadCode/ValueObject/TargetRemoveClassMethod.php',
'Rector\\DeadCode\\ValueObject\\VariableAndPropertyFetchAssign' => $baseDir . '/rules/DeadCode/ValueObject/VariableAndPropertyFetchAssign.php',
'Rector\\DeadCode\\ValueObject\\VersionCompareCondition' => $baseDir . '/rules/DeadCode/ValueObject/VersionCompareCondition.php',
'Rector\\Defluent\\NodeAnalyzer\\FluentChainMethodCallNodeAnalyzer' => $baseDir . '/packages/Defluent/NodeAnalyzer/FluentChainMethodCallNodeAnalyzer.php',
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 4c4133ac31c..2bc6f799a34 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInit099468b8f0503dfa63adfbd0082c61cf
+class ComposerAutoloaderInitf4223b92917874ab1dbad62f3f4ea2d4
{
private static $loader;
@@ -22,17 +22,17 @@ class ComposerAutoloaderInit099468b8f0503dfa63adfbd0082c61cf
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInit099468b8f0503dfa63adfbd0082c61cf', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInitf4223b92917874ab1dbad62f3f4ea2d4', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
- spl_autoload_unregister(array('ComposerAutoloaderInit099468b8f0503dfa63adfbd0082c61cf', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInitf4223b92917874ab1dbad62f3f4ea2d4', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInitf4223b92917874ab1dbad62f3f4ea2d4::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
- $filesToLoad = \Composer\Autoload\ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf::$files;
+ $filesToLoad = \Composer\Autoload\ComposerStaticInitf4223b92917874ab1dbad62f3f4ea2d4::$files;
$requireFile = static function ($fileIdentifier, $file) {
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index adebcf82e04..44bf6dc839b 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
namespace Composer\Autoload;
-class ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf
+class ComposerStaticInitf4223b92917874ab1dbad62f3f4ea2d4
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@@ -1811,6 +1811,7 @@ class ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPromotedPropertyRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php',
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessParamTagRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php',
'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUselessReturnTagRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php',
+ 'Rector\\DeadCode\\Rector\\Class_\\TargetRemoveClassMethodRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Class_/TargetRemoveClassMethodRector.php',
'Rector\\DeadCode\\Rector\\Concat\\RemoveConcatAutocastRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Concat/RemoveConcatAutocastRector.php',
'Rector\\DeadCode\\Rector\\ConstFetch\\RemovePhpVersionIdCheckRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ConstFetch/RemovePhpVersionIdCheckRector.php',
'Rector\\DeadCode\\Rector\\Expression\\RemoveDeadStmtRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Expression/RemoveDeadStmtRector.php',
@@ -1848,6 +1849,7 @@ class ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf
'Rector\\DeadCode\\UselessIfCondBeforeForeachDetector' => __DIR__ . '/../..' . '/rules/DeadCode/UselessIfCondBeforeForeachDetector.php',
'Rector\\DeadCode\\ValueObject\\BinaryToVersionCompareCondition' => __DIR__ . '/../..' . '/rules/DeadCode/ValueObject/BinaryToVersionCompareCondition.php',
'Rector\\DeadCode\\ValueObject\\PropertyFetchToVariableAssign' => __DIR__ . '/../..' . '/rules/DeadCode/ValueObject/PropertyFetchToVariableAssign.php',
+ 'Rector\\DeadCode\\ValueObject\\TargetRemoveClassMethod' => __DIR__ . '/../..' . '/rules/DeadCode/ValueObject/TargetRemoveClassMethod.php',
'Rector\\DeadCode\\ValueObject\\VariableAndPropertyFetchAssign' => __DIR__ . '/../..' . '/rules/DeadCode/ValueObject/VariableAndPropertyFetchAssign.php',
'Rector\\DeadCode\\ValueObject\\VersionCompareCondition' => __DIR__ . '/../..' . '/rules/DeadCode/ValueObject/VersionCompareCondition.php',
'Rector\\Defluent\\NodeAnalyzer\\FluentChainMethodCallNodeAnalyzer' => __DIR__ . '/../..' . '/packages/Defluent/NodeAnalyzer/FluentChainMethodCallNodeAnalyzer.php',
@@ -3061,9 +3063,9 @@ class ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInit099468b8f0503dfa63adfbd0082c61cf::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInitf4223b92917874ab1dbad62f3f4ea2d4::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInitf4223b92917874ab1dbad62f3f4ea2d4::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInitf4223b92917874ab1dbad62f3f4ea2d4::$classMap;
}, null, ClassLoader::class);
}