diff --git a/config/set/code-quality.php b/config/set/code-quality.php
index f8af8e1c62e..8b5dfde2df6 100644
--- a/config/set/code-quality.php
+++ b/config/set/code-quality.php
@@ -25,7 +25,6 @@ use Rector\CodeQuality\Rector\Foreach_\ForeachToInArrayRector;
use Rector\CodeQuality\Rector\Foreach_\SimplifyForeachToArrayFilterRector;
use Rector\CodeQuality\Rector\Foreach_\SimplifyForeachToCoalescingRector;
use Rector\CodeQuality\Rector\Foreach_\UnusedForeachValueToArrayKeysRector;
-use Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector;
use Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector;
use Rector\CodeQuality\Rector\FuncCall\BoolvalToTypeCastRector;
use Rector\CodeQuality\Rector\FuncCall\CallUserFuncWithArrowFunctionToInlineRector;
@@ -108,5 +107,5 @@ return static function (RectorConfig $rectorConfig) : void {
'mbstrrpos' => 'mb_strrpos',
'mbsubstr' => 'mb_substr',
]);
- $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SimplifyForeachToArrayFilterRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, ArrayKeysAndInArrayToArrayKeyExistsRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class]);
+ $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SimplifyForeachToArrayFilterRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class]);
};
diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md
index 51abf140cdf..aa63933da58 100644
--- a/docs/rector_rules_overview.md
+++ b/docs/rector_rules_overview.md
@@ -1,4 +1,4 @@
-# 386 Rules Overview
+# 384 Rules Overview
@@ -6,11 +6,11 @@
- [Arguments](#arguments) (6)
-- [CodeQuality](#codequality) (72)
+- [CodeQuality](#codequality) (71)
- [CodingStyle](#codingstyle) (34)
-- [DeadCode](#deadcode) (46)
+- [DeadCode](#deadcode) (45)
- [DependencyInjection](#dependencyinjection) (2)
@@ -366,23 +366,6 @@ Change `array_key_exists()` ternary to coalescing
-### ArrayKeysAndInArrayToArrayKeyExistsRector
-
-Replace `array_keys()` and `in_array()` to `array_key_exists()`
-
-- class: [`Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector`](../rules/CodeQuality/Rector/FuncCall/ArrayKeysAndInArrayToArrayKeyExistsRector.php)
-
-```diff
- function run($packageName, $values)
- {
-- $keys = array_keys($values);
-- return in_array($packageName, $keys, true);
-+ return array_key_exists($packageName, $values);
- }
-```
-
-
-
### ArrayMergeOfNonArraysToSimpleArrayRector
Change array_merge of non arrays to array directly
@@ -2615,18 +2598,14 @@ Remove if, foreach and for that does not do anything
```diff
class SomeClass
{
- public function run($someObject)
+ public function run($value)
{
- $value = 5;
- if ($value) {
- }
-
- if ($someObject->run()) {
+- foreach ($values as $value) {
- }
-
-- foreach ($values as $value) {
- }
-
return $value;
}
}
@@ -3367,43 +3346,6 @@ 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
-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/CodeQuality/Rector/FuncCall/ArrayKeysAndInArrayToArrayKeyExistsRector.php b/rules/CodeQuality/Rector/FuncCall/ArrayKeysAndInArrayToArrayKeyExistsRector.php
deleted file mode 100644
index bc3bef830a1..00000000000
--- a/rules/CodeQuality/Rector/FuncCall/ArrayKeysAndInArrayToArrayKeyExistsRector.php
+++ /dev/null
@@ -1,113 +0,0 @@
->
- */
- public function getNodeTypes() : array
- {
- return [FuncCall::class];
- }
- /**
- * @param FuncCall $node
- */
- public function refactor(Node $node) : ?Node
- {
- if (!$this->nodeNameResolver->isName($node, 'in_array')) {
- return null;
- }
- if ($node->isFirstClassCallable()) {
- return null;
- }
- $args = $node->getArgs();
- $secondArg = $args[1];
- $arrayVariable = $secondArg->value;
- $previousAssignArraysKeysFuncCall = $this->findPreviousAssignToArrayKeys($node, $arrayVariable);
- if ($previousAssignArraysKeysFuncCall instanceof Assign) {
- /** @var FuncCall $arrayKeysFuncCall */
- $arrayKeysFuncCall = $previousAssignArraysKeysFuncCall->expr;
- $this->removeNode($previousAssignArraysKeysFuncCall);
- return $this->createArrayKeyExists($node, $arrayKeysFuncCall);
- }
- if ($arrayVariable instanceof FuncCall && $this->isName($arrayVariable, 'array_keys')) {
- $arrayKeysFuncCallArgs = $arrayVariable->getArgs();
- if (\count($arrayKeysFuncCallArgs) > 1) {
- return null;
- }
- // unwrap array func call
- $secondArg->value = $arrayKeysFuncCallArgs[0]->value;
- $node->name = new Name('array_key_exists');
- unset($node->args[2]);
- return $node;
- }
- return null;
- }
- private function createArrayKeyExists(FuncCall $inArrayFuncCall, FuncCall $arrayKeysFuncCall) : ?FuncCall
- {
- if (!isset($inArrayFuncCall->getArgs()[0])) {
- return null;
- }
- if (!isset($arrayKeysFuncCall->getArgs()[0])) {
- return null;
- }
- $arguments = [$inArrayFuncCall->getArgs()[0], $arrayKeysFuncCall->getArgs()[0]];
- return new FuncCall(new Name('array_key_exists'), $arguments);
- }
- /**
- * @return null|\PhpParser\Node|\PhpParser\Node\FunctionLike
- */
- private function findPreviousAssignToArrayKeys(FuncCall $funcCall, Expr $expr)
- {
- return $this->betterNodeFinder->findFirstPrevious($funcCall, function (Node $node) use($expr) : bool {
- // breaking out of scope
- if ($node instanceof FunctionLike) {
- return \true;
- }
- if (!$node instanceof Assign) {
- return !(bool) $this->betterNodeFinder->findFirst($node, function (Node $subNode) use($expr) : bool {
- return $this->nodeComparator->areNodesEqual($expr, $subNode);
- });
- }
- if (!$this->nodeComparator->areNodesEqual($expr, $node->var)) {
- return \false;
- }
- if (!$node->expr instanceof FuncCall) {
- return \false;
- }
- return $this->nodeNameResolver->isName($node->expr, 'array_keys');
- });
- }
-}
diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php
index e5a761a59cd..6f9c8912d89 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 = 'a61fbf265d2995453ad8d9f12b6bb00ff1937162';
+ public const PACKAGE_VERSION = 'cdc9e6b6d8ce2446e8860016997ad37e8d3b7d44';
/**
* @api
* @var string
*/
- public const RELEASE_DATE = '2023-06-05 13:38:47';
+ public const RELEASE_DATE = '2023-06-05 13:42:45';
/**
* @var int
*/
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 4a9e834a744..8f304383bd5 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 ComposerAutoloaderInit3a11c776258046af5ada1aa5e6635840::getLoader();
+return ComposerAutoloaderInit81fb50a001fc3a5b67552be5bc7095a0::getLoader();
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 7c91b9cbdb8..3482313a9e7 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -1247,7 +1247,6 @@ return array(
'Rector\\CodeQuality\\Rector\\Foreach_\\SimplifyForeachToArrayFilterRector' => $baseDir . '/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToArrayFilterRector.php',
'Rector\\CodeQuality\\Rector\\Foreach_\\SimplifyForeachToCoalescingRector' => $baseDir . '/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php',
'Rector\\CodeQuality\\Rector\\Foreach_\\UnusedForeachValueToArrayKeysRector' => $baseDir . '/rules/CodeQuality/Rector/Foreach_/UnusedForeachValueToArrayKeysRector.php',
- 'Rector\\CodeQuality\\Rector\\FuncCall\\ArrayKeysAndInArrayToArrayKeyExistsRector' => $baseDir . '/rules/CodeQuality/Rector/FuncCall/ArrayKeysAndInArrayToArrayKeyExistsRector.php',
'Rector\\CodeQuality\\Rector\\FuncCall\\ArrayMergeOfNonArraysToSimpleArrayRector' => $baseDir . '/rules/CodeQuality/Rector/FuncCall/ArrayMergeOfNonArraysToSimpleArrayRector.php',
'Rector\\CodeQuality\\Rector\\FuncCall\\BoolvalToTypeCastRector' => $baseDir . '/rules/CodeQuality/Rector/FuncCall/BoolvalToTypeCastRector.php',
'Rector\\CodeQuality\\Rector\\FuncCall\\CallUserFuncWithArrowFunctionToInlineRector' => $baseDir . '/rules/CodeQuality/Rector/FuncCall/CallUserFuncWithArrowFunctionToInlineRector.php',
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 6daf563cbab..bd208dc48af 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInit3a11c776258046af5ada1aa5e6635840
+class ComposerAutoloaderInit81fb50a001fc3a5b67552be5bc7095a0
{
private static $loader;
@@ -22,17 +22,17 @@ class ComposerAutoloaderInit3a11c776258046af5ada1aa5e6635840
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInit3a11c776258046af5ada1aa5e6635840', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInit81fb50a001fc3a5b67552be5bc7095a0', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
- spl_autoload_unregister(array('ComposerAutoloaderInit3a11c776258046af5ada1aa5e6635840', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInit81fb50a001fc3a5b67552be5bc7095a0', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInit3a11c776258046af5ada1aa5e6635840::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInit81fb50a001fc3a5b67552be5bc7095a0::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
- $filesToLoad = \Composer\Autoload\ComposerStaticInit3a11c776258046af5ada1aa5e6635840::$files;
+ $filesToLoad = \Composer\Autoload\ComposerStaticInit81fb50a001fc3a5b67552be5bc7095a0::$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 c2b4cbb66db..f19481408af 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
namespace Composer\Autoload;
-class ComposerStaticInit3a11c776258046af5ada1aa5e6635840
+class ComposerStaticInit81fb50a001fc3a5b67552be5bc7095a0
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@@ -1489,7 +1489,6 @@ class ComposerStaticInit3a11c776258046af5ada1aa5e6635840
'Rector\\CodeQuality\\Rector\\Foreach_\\SimplifyForeachToArrayFilterRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToArrayFilterRector.php',
'Rector\\CodeQuality\\Rector\\Foreach_\\SimplifyForeachToCoalescingRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php',
'Rector\\CodeQuality\\Rector\\Foreach_\\UnusedForeachValueToArrayKeysRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Foreach_/UnusedForeachValueToArrayKeysRector.php',
- 'Rector\\CodeQuality\\Rector\\FuncCall\\ArrayKeysAndInArrayToArrayKeyExistsRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/FuncCall/ArrayKeysAndInArrayToArrayKeyExistsRector.php',
'Rector\\CodeQuality\\Rector\\FuncCall\\ArrayMergeOfNonArraysToSimpleArrayRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/FuncCall/ArrayMergeOfNonArraysToSimpleArrayRector.php',
'Rector\\CodeQuality\\Rector\\FuncCall\\BoolvalToTypeCastRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/FuncCall/BoolvalToTypeCastRector.php',
'Rector\\CodeQuality\\Rector\\FuncCall\\CallUserFuncWithArrowFunctionToInlineRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/FuncCall/CallUserFuncWithArrowFunctionToInlineRector.php',
@@ -3051,9 +3050,9 @@ class ComposerStaticInit3a11c776258046af5ada1aa5e6635840
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInit3a11c776258046af5ada1aa5e6635840::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInit3a11c776258046af5ada1aa5e6635840::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInit3a11c776258046af5ada1aa5e6635840::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInit81fb50a001fc3a5b67552be5bc7095a0::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit81fb50a001fc3a5b67552be5bc7095a0::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit81fb50a001fc3a5b67552be5bc7095a0::$classMap;
}, null, ClassLoader::class);
}