diff --git a/config/set/php54.php b/config/set/php54.php index a457bd2984f..211ceaf5f43 100644 --- a/config/set/php54.php +++ b/config/set/php54.php @@ -4,10 +4,12 @@ declare (strict_types=1); namespace RectorPrefix202207; use Rector\Config\RectorConfig; +use Rector\Php54\Rector\Array_\ArrayToShortArrayRector; use Rector\Php54\Rector\Break_\RemoveZeroBreakContinueRector; use Rector\Php54\Rector\FuncCall\RemoveReferenceFromCallRector; use Rector\Renaming\Rector\FuncCall\RenameFunctionRector; return static function (RectorConfig $rectorConfig) : void { + $rectorConfig->rule(ArrayToShortArrayRector::class); $rectorConfig->ruleWithConfiguration(RenameFunctionRector::class, ['mysqli_param_count' => 'mysqli_stmt_param_count']); $rectorConfig->rule(RemoveReferenceFromCallRector::class); $rectorConfig->rule(RemoveZeroBreakContinueRector::class); diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md index 7a85c458c04..af33141a632 100644 --- a/docs/rector_rules_overview.md +++ b/docs/rector_rules_overview.md @@ -1,4 +1,4 @@ -# 411 Rules Overview +# 412 Rules Overview
@@ -32,7 +32,7 @@ - [Php53](#php53) (3) -- [Php54](#php54) (2) +- [Php54](#php54) (3) - [Php55](#php55) (5) @@ -4592,6 +4592,25 @@ Use ?: instead of ?, where useful ## Php54 +### ArrayToShortArrayRector + +Array to short array + +- class: [`Rector\Php54\Rector\Array_\ArrayToShortArrayRector`](../rules/Php54/Rector/Array_/ArrayToShortArrayRector.php) + +```diff + class SomeClass + { + public function run() + { +- return array(); ++ return []; + } + } +``` + +
+ ### RemoveReferenceFromCallRector Remove & from function and method calls diff --git a/rules/Php54/Rector/Array_/ArrayToShortArrayRector.php b/rules/Php54/Rector/Array_/ArrayToShortArrayRector.php new file mode 100644 index 00000000000..dde776459c9 --- /dev/null +++ b/rules/Php54/Rector/Array_/ArrayToShortArrayRector.php @@ -0,0 +1,64 @@ +> + */ + public function getNodeTypes() : array + { + return [Array_::class]; + } + /** + * @param Array_ $node + */ + public function refactor(Node $node) : ?Node + { + if ($node->getAttribute(AttributeKey::KIND) === Array_::KIND_SHORT) { + return null; + } + $node->setAttribute(AttributeKey::ORIGINAL_NODE, null); + $node->setAttribute(AttributeKey::KIND, Array_::KIND_SHORT); + return $node; + } +} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 2dd88c328ce..bc1975e6fe2 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 = '25accb21425957d4da0db801465570e4c62014ff'; + public const PACKAGE_VERSION = '0660b21ecec553393226003c16432a626e20f8ec'; /** * @api * @var string */ - public const RELEASE_DATE = '2022-07-03 13:16:49'; + public const RELEASE_DATE = '2022-07-03 13:35:02'; /** * @var int */ diff --git a/src/ValueObject/PhpVersionFeature.php b/src/ValueObject/PhpVersionFeature.php index dfdf9da49b1..c3ffc2d04cc 100644 --- a/src/ValueObject/PhpVersionFeature.php +++ b/src/ValueObject/PhpVersionFeature.php @@ -40,6 +40,10 @@ final class PhpVersionFeature * @var int */ public const NO_REFERENCE_IN_ARG = \Rector\Core\ValueObject\PhpVersion::PHP_54; + /** + * @var int + */ + public const SHORT_ARRAY = \Rector\Core\ValueObject\PhpVersion::PHP_54; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 01ffe610a5d..5361b63c50c 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInite20b2e720a7a5d1cf900b8b5689d6b8c::getLoader(); +return ComposerAutoloaderInit962f084182d33365088c47167dbd9d4a::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index b920236a1d7..06d25634675 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2418,6 +2418,7 @@ return array( 'Rector\\Php53\\Rector\\FuncCall\\DirNameFileConstantToDirConstantRector' => $baseDir . '/rules/Php53/Rector/FuncCall/DirNameFileConstantToDirConstantRector.php', 'Rector\\Php53\\Rector\\Ternary\\TernaryToElvisRector' => $baseDir . '/rules/Php53/Rector/Ternary/TernaryToElvisRector.php', 'Rector\\Php53\\Rector\\Variable\\ReplaceHttpServerVarsByServerRector' => $baseDir . '/rules/Php53/Rector/Variable/ReplaceHttpServerVarsByServerRector.php', + 'Rector\\Php54\\Rector\\Array_\\ArrayToShortArrayRector' => $baseDir . '/rules/Php54/Rector/Array_/ArrayToShortArrayRector.php', 'Rector\\Php54\\Rector\\Break_\\RemoveZeroBreakContinueRector' => $baseDir . '/rules/Php54/Rector/Break_/RemoveZeroBreakContinueRector.php', 'Rector\\Php54\\Rector\\FuncCall\\RemoveReferenceFromCallRector' => $baseDir . '/rules/Php54/Rector/FuncCall/RemoveReferenceFromCallRector.php', 'Rector\\Php55\\Rector\\Class_\\ClassConstantToSelfClassRector' => $baseDir . '/rules/Php55/Rector/Class_/ClassConstantToSelfClassRector.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 6189460a630..d85ec0da1ac 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInite20b2e720a7a5d1cf900b8b5689d6b8c +class ComposerAutoloaderInit962f084182d33365088c47167dbd9d4a { private static $loader; @@ -22,19 +22,19 @@ class ComposerAutoloaderInite20b2e720a7a5d1cf900b8b5689d6b8c return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInite20b2e720a7a5d1cf900b8b5689d6b8c', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit962f084182d33365088c47167dbd9d4a', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInite20b2e720a7a5d1cf900b8b5689d6b8c', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit962f084182d33365088c47167dbd9d4a', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit962f084182d33365088c47167dbd9d4a::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $includeFiles = \Composer\Autoload\ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c::$files; + $includeFiles = \Composer\Autoload\ComposerStaticInit962f084182d33365088c47167dbd9d4a::$files; foreach ($includeFiles as $fileIdentifier => $file) { - composerRequiree20b2e720a7a5d1cf900b8b5689d6b8c($fileIdentifier, $file); + composerRequire962f084182d33365088c47167dbd9d4a($fileIdentifier, $file); } return $loader; @@ -46,7 +46,7 @@ class ComposerAutoloaderInite20b2e720a7a5d1cf900b8b5689d6b8c * @param string $file * @return void */ -function composerRequiree20b2e720a7a5d1cf900b8b5689d6b8c($fileIdentifier, $file) +function composerRequire962f084182d33365088c47167dbd9d4a($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 29bbf2cdc89..87817545089 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c +class ComposerStaticInit962f084182d33365088c47167dbd9d4a { public static $files = array ( '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', @@ -2725,6 +2725,7 @@ class ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c 'Rector\\Php53\\Rector\\FuncCall\\DirNameFileConstantToDirConstantRector' => __DIR__ . '/../..' . '/rules/Php53/Rector/FuncCall/DirNameFileConstantToDirConstantRector.php', 'Rector\\Php53\\Rector\\Ternary\\TernaryToElvisRector' => __DIR__ . '/../..' . '/rules/Php53/Rector/Ternary/TernaryToElvisRector.php', 'Rector\\Php53\\Rector\\Variable\\ReplaceHttpServerVarsByServerRector' => __DIR__ . '/../..' . '/rules/Php53/Rector/Variable/ReplaceHttpServerVarsByServerRector.php', + 'Rector\\Php54\\Rector\\Array_\\ArrayToShortArrayRector' => __DIR__ . '/../..' . '/rules/Php54/Rector/Array_/ArrayToShortArrayRector.php', 'Rector\\Php54\\Rector\\Break_\\RemoveZeroBreakContinueRector' => __DIR__ . '/../..' . '/rules/Php54/Rector/Break_/RemoveZeroBreakContinueRector.php', 'Rector\\Php54\\Rector\\FuncCall\\RemoveReferenceFromCallRector' => __DIR__ . '/../..' . '/rules/Php54/Rector/FuncCall/RemoveReferenceFromCallRector.php', 'Rector\\Php55\\Rector\\Class_\\ClassConstantToSelfClassRector' => __DIR__ . '/../..' . '/rules/Php55/Rector/Class_/ClassConstantToSelfClassRector.php', @@ -3414,9 +3415,9 @@ class ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInite20b2e720a7a5d1cf900b8b5689d6b8c::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit962f084182d33365088c47167dbd9d4a::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit962f084182d33365088c47167dbd9d4a::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit962f084182d33365088c47167dbd9d4a::$classMap; }, null, ClassLoader::class); }