From 594f8ba0b7171ab0d134acae22c189bccbf5c4d0 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 21 Dec 2024 07:57:41 +0700 Subject: [PATCH 1/2] [CodeQuality] Allow dynamic bool on AssertEqualsToSameRector --- .../Fixture/dynamic_bool.php.inc | 39 +++++++++++++++++++ .../MethodCall/AssertEqualsToSameRector.php | 8 +++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector/Fixture/dynamic_bool.php.inc diff --git a/rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector/Fixture/dynamic_bool.php.inc b/rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector/Fixture/dynamic_bool.php.inc new file mode 100644 index 00000000..667e429b --- /dev/null +++ b/rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector/Fixture/dynamic_bool.php.inc @@ -0,0 +1,39 @@ +assertEquals($expected, $this->returnsBool($line)); + } + + public function returnsBool(): bool { + return rand(0,1) ? true : false; + } +} + +?> +----- +assertSame($expected, $this->returnsBool($line)); + } + + public function returnsBool(): bool { + return rand(0,1) ? true : false; + } +} + +?> diff --git a/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php b/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php index 4c60861f..11e92997 100644 --- a/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php +++ b/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php @@ -4,6 +4,8 @@ namespace Rector\PHPUnit\CodeQuality\Rector\MethodCall; +use PHPStan\Type\Constant\ConstantBooleanType; +use PHPStan\Type\BooleanType; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\ClassConstFetch; @@ -143,7 +145,11 @@ private function isScalarType(Type $valueNodeType): bool } } - return false; + if ($valueNodeType instanceof ConstantBooleanType) { + return false; + } + + return $valueNodeType instanceof BooleanType; } private function isScalarOrEnumValue(Expr $expr): bool From eace04e0f7c7b3274a898bc12f2f13c27caca7e7 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sat, 21 Dec 2024 00:58:36 +0000 Subject: [PATCH 2/2] [ci-review] Rector Rectify --- .../Rector/MethodCall/AssertEqualsToSameRector.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php b/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php index 11e92997..6d5ae2e4 100644 --- a/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php +++ b/rules/CodeQuality/Rector/MethodCall/AssertEqualsToSameRector.php @@ -4,15 +4,15 @@ namespace Rector\PHPUnit\CodeQuality\Rector\MethodCall; -use PHPStan\Type\Constant\ConstantBooleanType; -use PHPStan\Type\BooleanType; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Scalar\InterpolatedString; +use PHPStan\Type\BooleanType; use PHPStan\Type\Constant\ConstantArrayType; +use PHPStan\Type\Constant\ConstantBooleanType; use PHPStan\Type\FloatType; use PHPStan\Type\IntegerType; use PHPStan\Type\StringType;