diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md
index f05994dbcab..40977587831 100644
--- a/docs/rector_rules_overview.md
+++ b/docs/rector_rules_overview.md
@@ -10,7 +10,7 @@
- [CodingStyle](#codingstyle) (28)
-- [DeadCode](#deadcode) (43)
+- [DeadCode](#deadcode) (42)
- [EarlyReturn](#earlyreturn) (9)
@@ -46,7 +46,7 @@
- [Php83](#php83) (3)
-- [Privatization](#privatization) (4)
+- [Privatization](#privatization) (5)
- [Removing](#removing) (5)
@@ -2464,29 +2464,6 @@ Remove empty class methods not required by parents
-### RemoveJustPropertyFetchForAssignRector
-
-Remove assign of property, just for value assign
-
-- class: [`Rector\DeadCode\Rector\StmtsAwareInterface\RemoveJustPropertyFetchForAssignRector`](../rules/DeadCode/Rector/StmtsAwareInterface/RemoveJustPropertyFetchForAssignRector.php)
-
-```diff
- class SomeClass
- {
- private $items = [];
-
- public function run()
- {
-- $items = $this->items;
-- $items[] = 1000;
-- $this->items = $items ;
-+ $this->items[] = 1000;
- }
- }
-```
-
-
-
### RemoveNonExistingVarAnnotationRector
Removes non-existing `@var` annotations above the code
@@ -5327,6 +5304,25 @@ Combine separated host and port on `ldap_connect()` args
## Privatization
+### FinalizeClassesWithoutChildrenCollectorRector
+
+Finalize classes without children using collectors
+
+- class: [`Rector\Privatization\Rector\Class_\FinalizeClassesWithoutChildrenCollectorRector`](../rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php)
+
+```diff
+-class FirstClass extends SecondClass
++final class FirstClass extends SecondClass
+ {
+ }
+
+ class SecondClass
+ {
+ }
+```
+
+
+
### FinalizeClassesWithoutChildrenRector
Finalize every class that has no children
@@ -5334,19 +5330,14 @@ Finalize every class that has no children
- class: [`Rector\Privatization\Rector\Class_\FinalizeClassesWithoutChildrenRector`](../rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenRector.php)
```diff
--class FirstClass
-+final class FirstClass
+-class FirstClass extends SecondClass
++final class FirstClass extends SecondClass
{
}
class SecondClass
{
}
-
--class ThirdClass extends SecondClass
-+final class ThirdClass extends SecondClass
- {
- }
```
diff --git a/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php b/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php
index 6ee8752029c..5c4c4b0ea3e 100644
--- a/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php
+++ b/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php
@@ -15,6 +15,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\Privatization\NodeManipulator\VisibilityManipulator;
use Rector\Rector\AbstractCollectorRector;
use Rector\Reflection\ReflectionResolver;
+use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @see \Rector\Tests\Privatization\Rector\Class_\FinalizeClassesWithoutChildrenCollectorRector\FinalizeClassesWithoutChildrenCollectorRectorTest
@@ -87,7 +88,25 @@ final class FinalizeClassesWithoutChildrenCollectorRector extends AbstractCollec
}
public function getRuleDefinition() : RuleDefinition
{
- return new RuleDefinition('...', []);
+ return new RuleDefinition('Finalize classes without children using collectors', [new CodeSample(<<<'CODE_SAMPLE'
+class FirstClass extends SecondClass
+{
+}
+
+class SecondClass
+{
+}
+CODE_SAMPLE
+, <<<'CODE_SAMPLE'
+final class FirstClass extends SecondClass
+{
+}
+
+class SecondClass
+{
+}
+CODE_SAMPLE
+)]);
}
private function shouldSkipClass(Class_ $class) : bool
{
diff --git a/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenRector.php b/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenRector.php
index 6b637664081..1ad8a2b8670 100644
--- a/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenRector.php
+++ b/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenRector.php
@@ -56,30 +56,22 @@ final class FinalizeClassesWithoutChildrenRector extends AbstractRector
public function getRuleDefinition() : RuleDefinition
{
return new RuleDefinition('Finalize every class that has no children', [new CodeSample(<<<'CODE_SAMPLE'
-class FirstClass
+class FirstClass extends SecondClass
{
}
class SecondClass
{
}
-
-class ThirdClass extends SecondClass
-{
-}
CODE_SAMPLE
, <<<'CODE_SAMPLE'
-final class FirstClass
+final class FirstClass extends SecondClass
{
}
class SecondClass
{
}
-
-final class ThirdClass extends SecondClass
-{
-}
CODE_SAMPLE
)]);
}
diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php
index b9593882d94..b2bbe317738 100644
--- a/src/Application/VersionResolver.php
+++ b/src/Application/VersionResolver.php
@@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
- public const PACKAGE_VERSION = '9144efc05cf4d084d4af69f4df0be9d7a66e5869';
+ public const PACKAGE_VERSION = '5c0397910fbd9735c375c4632ec116ebe8609f25';
/**
* @api
* @var string
*/
- public const RELEASE_DATE = '2024-01-02 20:41:33';
+ public const RELEASE_DATE = '2024-01-02 21:36:20';
/**
* @var int
*/
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 367e60fe20d..e87c43a4ed8 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 ComposerAutoloaderInitbb976c8093699e6523d42b3a6d444634::getLoader();
+return ComposerAutoloaderInit8c7215074e107c54fa988078cf9a09f8::getLoader();
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index e5beb2895e2..f4a16aa4be6 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInitbb976c8093699e6523d42b3a6d444634
+class ComposerAutoloaderInit8c7215074e107c54fa988078cf9a09f8
{
private static $loader;
@@ -22,17 +22,17 @@ class ComposerAutoloaderInitbb976c8093699e6523d42b3a6d444634
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInitbb976c8093699e6523d42b3a6d444634', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInit8c7215074e107c54fa988078cf9a09f8', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
- spl_autoload_unregister(array('ComposerAutoloaderInitbb976c8093699e6523d42b3a6d444634', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInit8c7215074e107c54fa988078cf9a09f8', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInitbb976c8093699e6523d42b3a6d444634::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInit8c7215074e107c54fa988078cf9a09f8::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
- $filesToLoad = \Composer\Autoload\ComposerStaticInitbb976c8093699e6523d42b3a6d444634::$files;
+ $filesToLoad = \Composer\Autoload\ComposerStaticInit8c7215074e107c54fa988078cf9a09f8::$files;
$requireFile = \Closure::bind(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 37c6bcd2183..5fab70e9abb 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
namespace Composer\Autoload;
-class ComposerStaticInitbb976c8093699e6523d42b3a6d444634
+class ComposerStaticInit8c7215074e107c54fa988078cf9a09f8
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@@ -2644,9 +2644,9 @@ class ComposerStaticInitbb976c8093699e6523d42b3a6d444634
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInitbb976c8093699e6523d42b3a6d444634::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInitbb976c8093699e6523d42b3a6d444634::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInitbb976c8093699e6523d42b3a6d444634::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInit8c7215074e107c54fa988078cf9a09f8::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit8c7215074e107c54fa988078cf9a09f8::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit8c7215074e107c54fa988078cf9a09f8::$classMap;
}, null, ClassLoader::class);
}
diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php
index 550f87d9922..4332ae38332 100644
--- a/vendor/scoper-autoload.php
+++ b/vendor/scoper-autoload.php
@@ -30,7 +30,7 @@ if (!function_exists('humbug_phpscoper_expose_class')) {
}
}
humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202401\AutoloadIncluder');
-humbug_phpscoper_expose_class('ComposerAutoloaderInitbb976c8093699e6523d42b3a6d444634', 'RectorPrefix202401\ComposerAutoloaderInitbb976c8093699e6523d42b3a6d444634');
+humbug_phpscoper_expose_class('ComposerAutoloaderInit8c7215074e107c54fa988078cf9a09f8', 'RectorPrefix202401\ComposerAutoloaderInit8c7215074e107c54fa988078cf9a09f8');
humbug_phpscoper_expose_class('Product', 'RectorPrefix202401\Product');
// Function aliases. For more information see: