From 6d9fd4ffb55872a2140d01450a2650e069d05a56 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 4 Oct 2025 13:59:36 +0700 Subject: [PATCH 1/3] [CodeQuality] Allow compare int and int<0, max> on UseIdenticalOverEqualWithSameTypeRector --- .../Fixture/identical_integer.php.inc | 51 +++++++++++++++++++ ...seIdenticalOverEqualWithSameTypeRector.php | 4 ++ 2 files changed, 55 insertions(+) create mode 100644 rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc diff --git a/rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc b/rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc new file mode 100644 index 00000000000..6505547d795 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc @@ -0,0 +1,51 @@ +getValue() === 1) { + return 'yes'; + } + + return 'no'; + } + + /** + * @return int<0, max> + */ + private function getValue(): int + { + return 1; + } +} + +?> +----- +getValue() === 1) { + return 'yes'; + } + + return 'no'; + } + + /** + * @return int<0, max> + */ + private function getValue(): int + { + return 1; + } +} + +?> diff --git a/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php b/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php index 2ec3520d03c..cee3f4f3b05 100644 --- a/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php +++ b/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php @@ -89,6 +89,10 @@ public function refactor(Node $node): ?Node return $this->processIdenticalOrNotIdentical($node); } + if ($leftStaticType->isInteger()->yes() && $rightStaticType->isInteger()->yes()) { + return $this->processIdenticalOrNotIdentical($node); + } + // different types if (! $leftStaticType->equals($rightStaticType)) { return null; From 70d82529f9da573879c6a1f5950bac6ed8499f46 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sat, 4 Oct 2025 07:02:43 +0000 Subject: [PATCH 2/3] [ci-review] Rector Rectify --- .../PhpDocParser/TypeExpressionFromVarTagResolver.php | 4 ++-- src/Configuration/OnlyRuleResolver.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rules/TypeDeclaration/PhpDocParser/TypeExpressionFromVarTagResolver.php b/rules/TypeDeclaration/PhpDocParser/TypeExpressionFromVarTagResolver.php index b0e8156881c..34760ba403e 100644 --- a/rules/TypeDeclaration/PhpDocParser/TypeExpressionFromVarTagResolver.php +++ b/rules/TypeDeclaration/PhpDocParser/TypeExpressionFromVarTagResolver.php @@ -110,7 +110,7 @@ public function resolveTypeExpressionFromVarTag(TypeNode $typeNode, Variable $va private function generateOrExpression(array $unionExpressions) { $booleanOr = new BooleanOr($unionExpressions[0], $unionExpressions[1]); - if (count($unionExpressions) == 2) { + if (count($unionExpressions) === 2) { return $booleanOr; } @@ -125,7 +125,7 @@ private function generateOrExpression(array $unionExpressions) private function generateAndExpression(array $intersectionExpressions) { $booleanAnd = new BooleanAnd($intersectionExpressions[0], $intersectionExpressions[1]); - if (count($intersectionExpressions) == 2) { + if (count($intersectionExpressions) === 2) { return $booleanAnd; } diff --git a/src/Configuration/OnlyRuleResolver.php b/src/Configuration/OnlyRuleResolver.php index 896e3dcee69..e4f3ad52c1f 100644 --- a/src/Configuration/OnlyRuleResolver.php +++ b/src/Configuration/OnlyRuleResolver.php @@ -48,7 +48,7 @@ public function resolve(string $rule): string } $matching = array_unique($matching); - if (count($matching) == 1) { + if (count($matching) === 1) { return $matching[0]; } From 3bfe859844c22446e47d599d757e43ed750958aa Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 4 Oct 2025 14:04:43 +0700 Subject: [PATCH 3/3] fixture fix --- .../Fixture/identical_integer.php.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc b/rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc index 6505547d795..c2762c2c0a8 100644 --- a/rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc +++ b/rules-tests/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector/Fixture/identical_integer.php.inc @@ -6,7 +6,7 @@ final class IdenticalInteger { public function equal() { - if ($this->getValue() === 1) { + if ($this->getValue() == 1) { return 'yes'; }