From 44c5dec9410e1958df717b5b59bb252887cbb907 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 27 Feb 2025 18:53:37 +0100 Subject: [PATCH 1/2] add custom message support to AssertEmptyNullableObjectToAssertInstanceofRector --- .../Fixture/keep_custom_message.php.inc | 37 +++++++++++++++++++ ...NullableObjectToAssertInstanceofRector.php | 8 +++- 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 rules-tests/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector/Fixture/keep_custom_message.php.inc diff --git a/rules-tests/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector/Fixture/keep_custom_message.php.inc b/rules-tests/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector/Fixture/keep_custom_message.php.inc new file mode 100644 index 00000000..faa74b0a --- /dev/null +++ b/rules-tests/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector/Fixture/keep_custom_message.php.inc @@ -0,0 +1,37 @@ +assertNull($someObject, 'some message'); + } +} + +?> +----- +assertNotInstanceOf(\CodeQuality\Rector\MethodCall\AssertEmptyNullableObjectToAssertInstanceofRector\Source\SomeTypeObject::class, $someObject, 'some message'); + } +} + +?> diff --git a/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php b/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php index 1edefd41..b12b6c0a 100644 --- a/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php +++ b/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php @@ -47,7 +47,6 @@ public function test() } } CODE_SAMPLE - , <<<'CODE_SAMPLE' use PHPUnit\Framework\TestCase; @@ -99,7 +98,6 @@ public function refactor(Node $node): ?Node } $firstArgType = $this->getType($firstArg->value); - if (! $firstArgType instanceof UnionType) { return null; } @@ -118,9 +116,15 @@ public function refactor(Node $node): ?Node $fullyQualified = new FullyQualified($pureType->getClassName()); + $customMessageArg = $node->getArgs()[1] ?? null; + $node->args[0] = new Arg(new ClassConstFetch($fullyQualified, 'class')); $node->args[1] = $firstArg; + if ($customMessageArg instanceof Arg) { + $node->args[] = $customMessageArg; + } + return $node; } } From 8a906724f6997ce618b54fcaf65b1f1b7cdd79f1 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 27 Feb 2025 17:55:24 +0000 Subject: [PATCH 2/2] [ci-review] Rector Rectify --- .../AssertEmptyNullableObjectToAssertInstanceofRector.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php b/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php index b12b6c0a..de019754 100644 --- a/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php +++ b/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php @@ -116,7 +116,7 @@ public function refactor(Node $node): ?Node $fullyQualified = new FullyQualified($pureType->getClassName()); - $customMessageArg = $node->getArgs()[1] ?? null; + $customMessageArg = $node->getArgs()[1] ?? null; $node->args[0] = new Arg(new ClassConstFetch($fullyQualified, 'class')); $node->args[1] = $firstArg;