From 8c4fcef421d4ad6391d82352218184e96d52f9a3 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 8 Dec 2025 01:26:46 +0100 Subject: [PATCH] rename FirstClassCallableRector to ArrayToFirstClassCallableRector to make feature explicit --- config/set/php81.php | 4 ++-- .../ArrayToFirstClassCallableRectorTest.php} | 4 ++-- .../Fixture/make_other_closure_pass.php.inc | 8 ++++---- .../Fixture/skip_dynamic_variable2.php.inc | 2 +- .../Fixture/skip_enum_data.php.inc | 2 +- .../Fixture/skip_function_reference.php.inc | 2 +- .../Fixture/skip_in_attribute.php.inc | 4 ++-- .../Fixture/skip_in_attribute_class.php.inc | 8 ++++++++ .../Fixture/skip_invoke_from_non_class_code.php.inc | 8 ++++++++ .../Fixture/skip_non_existing_method.php.inc | 2 +- ...c_private_method_with_other_object_const_fetch.php.inc | 4 ++-- .../skip_non_static_with_other_object_const_fetch.php.inc | 4 ++-- .../Fixture/skip_on_class_const.php.inc | 2 +- .../Fixture/skip_on_property.php.inc | 2 +- .../Fixture/skip_private_method_by_instantiation.php.inc | 4 ++-- .../Fixture/skip_private_method_by_property_fetch.php.inc | 4 ++-- .../Fixture/skip_simple_yield_array.php.inc | 2 +- .../Fixture/skip_symfony_config.php.inc | 4 ++-- .../Fixture/some_class.php.inc | 4 ++-- .../Fixture/some_static_call.php.inc | 4 ++-- .../Fixture/static_with_other_object_const_fetch.php.inc | 8 ++++---- .../Fixture/with_property_fetch.php.inc | 8 ++++---- .../Source/SomeExternalObject.php | 2 +- .../Source/WithPrivateMethod.php | 2 +- .../config/configured_rule.php | 4 ++-- .../Fixture/skip_dynamic_variable.php.inc | 6 ------ .../Fixture/skip_in_attribute_class.php.inc | 8 -------- .../Fixture/skip_invoke_from_non_class_code.php.inc | 8 -------- ...ableRector.php => ArrayToFirstClassCallableRector.php} | 4 ++-- .../config/configured_rule.php | 4 ++-- .../config/configured_rule.php | 4 ++-- 31 files changed, 65 insertions(+), 71 deletions(-) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector/FirstClassCallableRectorTest.php => ArrayToFirstClassCallableRector/ArrayToFirstClassCallableRectorTest.php} (77%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/make_other_closure_pass.php.inc (59%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_dynamic_variable2.php.inc (54%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_enum_data.php.inc (74%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_function_reference.php.inc (67%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_in_attribute.php.inc (56%) create mode 100644 rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_in_attribute_class.php.inc create mode 100644 rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_invoke_from_non_class_code.php.inc rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_non_existing_method.php.inc (65%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_non_static_private_method_with_other_object_const_fetch.php.inc (61%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_non_static_with_other_object_const_fetch.php.inc (59%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_on_class_const.php.inc (74%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_on_property.php.inc (73%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_private_method_by_instantiation.php.inc (54%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_private_method_by_property_fetch.php.inc (60%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_simple_yield_array.php.inc (67%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/skip_symfony_config.php.inc (58%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/some_class.php.inc (64%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/some_static_call.php.inc (65%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/static_with_other_object_const_fetch.php.inc (50%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Fixture/with_property_fetch.php.inc (65%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Source/SomeExternalObject.php (79%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/Source/WithPrivateMethod.php (80%) rename rules-tests/Php81/Rector/Array_/{FirstClassCallableRector => ArrayToFirstClassCallableRector}/config/configured_rule.php (62%) delete mode 100644 rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_dynamic_variable.php.inc delete mode 100644 rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_in_attribute_class.php.inc delete mode 100644 rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_invoke_from_non_class_code.php.inc rename rules/Php81/Rector/Array_/{FirstClassCallableRector.php => ArrayToFirstClassCallableRector.php} (95%) diff --git a/config/set/php81.php b/config/set/php81.php index 9d9cfcdaf4e..4ec7f14cd08 100644 --- a/config/set/php81.php +++ b/config/set/php81.php @@ -6,7 +6,7 @@ use Rector\CodingStyle\Rector\FuncCall\FunctionFirstClassCallableRector; use Rector\CodingStyle\Rector\FunctionLike\FunctionLikeToFirstClassCallableRector; use Rector\Config\RectorConfig; -use Rector\Php81\Rector\Array_\FirstClassCallableRector; +use Rector\Php81\Rector\Array_\ArrayToFirstClassCallableRector; use Rector\Php81\Rector\Class_\MyCLabsClassToEnumRector; use Rector\Php81\Rector\Class_\SpatieEnumClassToEnumRector; use Rector\Php81\Rector\ClassMethod\NewInInitializerRector; @@ -31,7 +31,7 @@ NullToStrictStringFuncCallArgRector::class, NullToStrictIntPregSlitFuncCallLimitArgRector::class, // array of local method call - FirstClassCallableRector::class, + ArrayToFirstClassCallableRector::class, // closure/arrow function FunctionLikeToFirstClassCallableRector::class, ClosureFromCallableToFirstClassCallableRector::class, diff --git a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/FirstClassCallableRectorTest.php b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/ArrayToFirstClassCallableRectorTest.php similarity index 77% rename from rules-tests/Php81/Rector/Array_/FirstClassCallableRector/FirstClassCallableRectorTest.php rename to rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/ArrayToFirstClassCallableRectorTest.php index 4544cb6763b..a8e18eece44 100644 --- a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/FirstClassCallableRectorTest.php +++ b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/ArrayToFirstClassCallableRectorTest.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Rector\Tests\Php81\Rector\Array_\FirstClassCallableRector; +namespace Rector\Tests\Php81\Rector\Array_\ArrayToFirstClassCallableRector; use Iterator; use PHPUnit\Framework\Attributes\DataProvider; use Rector\Testing\PHPUnit\AbstractRectorTestCase; -final class FirstClassCallableRectorTest extends AbstractRectorTestCase +final class ArrayToFirstClassCallableRectorTest extends AbstractRectorTestCase { #[DataProvider('provideData')] public function test(string $filePath): void diff --git a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/make_other_closure_pass.php.inc b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/make_other_closure_pass.php.inc similarity index 59% rename from rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/make_other_closure_pass.php.inc rename to rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/make_other_closure_pass.php.inc index 63e5d13a313..f125926e8bd 100644 --- a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/make_other_closure_pass.php.inc +++ b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/make_other_closure_pass.php.inc @@ -1,9 +1,9 @@ services() @@ -14,10 +14,10 @@ return static function (stdClass $container): void { ----- services() diff --git a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_dynamic_variable2.php.inc b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_dynamic_variable2.php.inc similarity index 54% rename from rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_dynamic_variable2.php.inc rename to rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_dynamic_variable2.php.inc index c0528525757..31112d81b14 100644 --- a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_dynamic_variable2.php.inc +++ b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_dynamic_variable2.php.inc @@ -1,6 +1,6 @@ null, -); \ No newline at end of file +); diff --git a/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_in_attribute_class.php.inc b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_in_attribute_class.php.inc new file mode 100644 index 00000000000..166946693a8 --- /dev/null +++ b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_in_attribute_class.php.inc @@ -0,0 +1,8 @@ +name('verification.notice'); diff --git a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_non_existing_method.php.inc b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_non_existing_method.php.inc similarity index 65% rename from rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_non_existing_method.php.inc rename to rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_non_existing_method.php.inc index ca2d3686e49..3538905b777 100644 --- a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_non_existing_method.php.inc +++ b/rules-tests/Php81/Rector/Array_/ArrayToFirstClassCallableRector/Fixture/skip_non_existing_method.php.inc @@ -1,6 +1,6 @@ rule(FirstClassCallableRector::class); + $rectorConfig->rule(ArrayToFirstClassCallableRector::class); $rectorConfig->phpVersion(PhpVersion::PHP_81); }; diff --git a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_dynamic_variable.php.inc b/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_dynamic_variable.php.inc deleted file mode 100644 index 8665f32f1a8..00000000000 --- a/rules-tests/Php81/Rector/Array_/FirstClassCallableRector/Fixture/skip_dynamic_variable.php.inc +++ /dev/null @@ -1,6 +0,0 @@ -name('verification.notice'); diff --git a/rules/Php81/Rector/Array_/FirstClassCallableRector.php b/rules/Php81/Rector/Array_/ArrayToFirstClassCallableRector.php similarity index 95% rename from rules/Php81/Rector/Array_/FirstClassCallableRector.php rename to rules/Php81/Rector/Array_/ArrayToFirstClassCallableRector.php index 24a9c77d1f1..6af80bbb1f6 100644 --- a/rules/Php81/Rector/Array_/FirstClassCallableRector.php +++ b/rules/Php81/Rector/Array_/ArrayToFirstClassCallableRector.php @@ -29,9 +29,9 @@ /** * @see RFC https://wiki.php.net/rfc/first_class_callable_syntax - * @see \Rector\Tests\Php81\Rector\Array_\FirstClassCallableRector\FirstClassCallableRectorTest + * @see \Rector\Tests\Php81\Rector\Array_\ArrayToFirstClassCallableRector\ArrayToFirstClassCallableRectorTest */ -final class FirstClassCallableRector extends AbstractRector implements MinPhpVersionInterface +final class ArrayToFirstClassCallableRector extends AbstractRector implements MinPhpVersionInterface { public function __construct( private readonly ArrayCallableMethodMatcher $arrayCallableMethodMatcher, diff --git a/tests/Issues/AnnotationToAttributeFirstClassCallable/config/configured_rule.php b/tests/Issues/AnnotationToAttributeFirstClassCallable/config/configured_rule.php index 4b6f2fc07c6..6dd284d96e8 100644 --- a/tests/Issues/AnnotationToAttributeFirstClassCallable/config/configured_rule.php +++ b/tests/Issues/AnnotationToAttributeFirstClassCallable/config/configured_rule.php @@ -5,10 +5,10 @@ use Rector\Config\RectorConfig; use Rector\Php80\Rector\Class_\AnnotationToAttributeRector; use Rector\Php80\ValueObject\AnnotationToAttribute; -use Rector\Php81\Rector\Array_\FirstClassCallableRector; +use Rector\Php81\Rector\Array_\ArrayToFirstClassCallableRector; return RectorConfig::configure() ->withConfiguredRule(AnnotationToAttributeRector::class, [ new AnnotationToAttribute('Symfony\Component\Serializer\Annotation\Context'), ]) - ->withRules([FirstClassCallableRector::class]); + ->withRules([ArrayToFirstClassCallableRector::class]); diff --git a/tests/Issues/AttributeAndArgValueRefresh/config/configured_rule.php b/tests/Issues/AttributeAndArgValueRefresh/config/configured_rule.php index 72c1632c059..a709ea2c910 100644 --- a/tests/Issues/AttributeAndArgValueRefresh/config/configured_rule.php +++ b/tests/Issues/AttributeAndArgValueRefresh/config/configured_rule.php @@ -3,7 +3,7 @@ declare(strict_types=1); use Rector\Config\RectorConfig; -use Rector\Php81\Rector\Array_\FirstClassCallableRector; +use Rector\Php81\Rector\Array_\ArrayToFirstClassCallableRector; use Rector\Tests\Issues\AttributeAndArgValueRefresh\Source\SetArrayArgValueRector; use Rector\Tests\Issues\AttributeAndArgValueRefresh\Source\SetArrayAttributeValueRector; @@ -11,5 +11,5 @@ ->withRules([ SetArrayArgValueRector::class, SetArrayAttributeValueRector::class, - FirstClassCallableRector::class, + ArrayToFirstClassCallableRector::class, ]);