From d5b4b559fda6bdb7147a0751de7bb7584030a9e4 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 21 Jul 2026 12:20:42 +0200 Subject: [PATCH] Add "if" set with if/else/ternary rules --- bin/rector.php | 2 -- config/set/if.php | 30 +++++++++++++++++++++++ src/Config/Level/CodeQualityLevel.php | 20 --------------- src/Configuration/RectorConfigBuilder.php | 2 ++ src/Set/ValueObject/SetList.php | 2 ++ 5 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 config/set/if.php diff --git a/bin/rector.php b/bin/rector.php index d42541061cd..07eea9a09cc 100755 --- a/bin/rector.php +++ b/bin/rector.php @@ -6,12 +6,10 @@ use Rector\Bootstrap\AutoloadFileParameterResolver; use Rector\Bootstrap\RectorConfigsResolver; use Rector\ChangesReporting\Output\JsonOutputFormatter; -use Rector\Config\RectorConfig; use Rector\Configuration\Option; use Rector\Console\Style\SymfonyStyleFactory; use Rector\DependencyInjection\LazyContainerFactory; use Rector\DependencyInjection\RectorContainerFactory; -use Rector\NodeTypeResolver\DependencyInjection\PHPStanServicesFactory; use Rector\Util\Reflection\PrivatesAccessor; use Symfony\Component\Console\Application; use Symfony\Component\Console\Command\Command; diff --git a/config/set/if.php b/config/set/if.php new file mode 100644 index 00000000000..25bed6fd98d --- /dev/null +++ b/config/set/if.php @@ -0,0 +1,30 @@ +rules([ + AlternativeIfToBracketRector::class, + CompleteMissingIfElseBracketRector::class, + InlineIfToExplicitIfRector::class, + TernaryFalseExpressionToIfRector::class, + ArrayExplicitBoolCompareRector::class, + ObjectExplicitBoolCompareRector::class, + ExplicitBoolCompareRector::class, + CombineIfRector::class, + ShortenElseIfRector::class, + SimplifyIfElseToTernaryRector::class, + ]); +}; diff --git a/src/Config/Level/CodeQualityLevel.php b/src/Config/Level/CodeQualityLevel.php index 9402e5481c0..8e68890fb4f 100644 --- a/src/Config/Level/CodeQualityLevel.php +++ b/src/Config/Level/CodeQualityLevel.php @@ -28,8 +28,6 @@ use Rector\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector; use Rector\CodeQuality\Rector\Empty_\SimplifyEmptyCheckOnEmptyArrayRector; use Rector\CodeQuality\Rector\Equal\UseIdenticalOverEqualWithSameTypeRector; -use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector; -use Rector\CodeQuality\Rector\Expression\TernaryFalseExpressionToIfRector; use Rector\CodeQuality\Rector\For_\ForRepeatedCountToOwnVariableRector; use Rector\CodeQuality\Rector\Foreach_\ForeachItemsAssignToEmptyArrayToAssignRector; use Rector\CodeQuality\Rector\Foreach_\ForeachToInArrayRector; @@ -56,14 +54,7 @@ use Rector\CodeQuality\Rector\Identical\SimplifyBoolIdenticalTrueRector; use Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector; use Rector\CodeQuality\Rector\Identical\StrlenZeroToIdenticalEmptyStringRector; -use Rector\CodeQuality\Rector\If_\ArrayExplicitBoolCompareRector; -use Rector\CodeQuality\Rector\If_\CombineIfRector; -use Rector\CodeQuality\Rector\If_\CompleteMissingIfElseBracketRector; use Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector; -use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector; -use Rector\CodeQuality\Rector\If_\ObjectExplicitBoolCompareRector; -use Rector\CodeQuality\Rector\If_\ShortenElseIfRector; -use Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector; use Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector; use Rector\CodeQuality\Rector\If_\SimplifyIfNullableReturnRector; use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector; @@ -85,7 +76,6 @@ use Rector\CodeQuality\Rector\Ternary\TernaryEmptyArrayArrayDimFetchToCoalesceRector; use Rector\CodeQuality\Rector\Ternary\TernaryImplodeToImplodeRector; use Rector\CodeQuality\Rector\Ternary\UnnecessaryTernaryExpressionRector; -use Rector\CodingStyle\Rector\If_\AlternativeIfToBracketRector; use Rector\Contract\Rector\RectorInterface; use Rector\Php52\Rector\Property\VarToPublicPropertyRector; use Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector; @@ -138,13 +128,8 @@ final class CodeQualityLevel NegatedAndsToPositiveOrsRector::class, SimplifyTautologyTernaryRector::class, SingleInArrayToCompareRector::class, - SimplifyIfElseToTernaryRector::class, TernaryImplodeToImplodeRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, - ArrayExplicitBoolCompareRector::class, - ObjectExplicitBoolCompareRector::class, - ExplicitBoolCompareRector::class, - CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, @@ -156,7 +141,6 @@ final class CodeQualityLevel StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, - ShortenElseIfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, @@ -164,7 +148,6 @@ final class CodeQualityLevel ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, - InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, @@ -182,7 +165,6 @@ final class CodeQualityLevel FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, - TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, @@ -191,8 +173,6 @@ final class CodeQualityLevel DisallowedEmptyRuleFixerRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, - AlternativeIfToBracketRector::class, - CompleteMissingIfElseBracketRector::class, RemoveUselessIsObjectCheckRector::class, ConvertStaticToSelfRector::class, SortCallLikeNamedArgsRector::class, diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index 8bb637db34e..d6827647816 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -791,6 +791,7 @@ public function withPreparedSets( bool $naming = false, bool $namedArgs = false, bool $instanceOf = false, + bool $if = false, bool $earlyReturn = false, /** @deprecated */ bool $strictBooleans = false, @@ -822,6 +823,7 @@ public function withPreparedSets( SetList::NAMING => $naming, SetList::NAMED_ARGS => $namedArgs, SetList::INSTANCEOF => $instanceOf, + SetList::IF => $if, SetList::EARLY_RETURN => $earlyReturn, SetList::CARBON => $carbon, SetList::RECTOR_PRESET => $rectorPreset, diff --git a/src/Set/ValueObject/SetList.php b/src/Set/ValueObject/SetList.php index e86985a3106..e37e0d73482 100644 --- a/src/Set/ValueObject/SetList.php +++ b/src/Set/ValueObject/SetList.php @@ -80,6 +80,8 @@ final class SetList public const string INSTANCEOF = __DIR__ . '/../../../config/set/instanceof.php'; + public const string IF = __DIR__ . '/../../../config/set/if.php'; + public const string CARBON = __DIR__ . '/../../../config/set/datetime-to-carbon.php'; public const string BEHAT_ANNOTATIONS_TO_ATTRIBUTES = __DIR__ . '/../../../config/set/behat-annotations-to-attributes.php';