From a1b339f7765db7985e9463d1000358184e4a1f4e Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 13 May 2026 09:47:29 +0700 Subject: [PATCH 1/4] [DeadCode] Skip used by get_object_vars on RemoveUnusedPromotedPropertyRector --- .../Fixture/skip_used_by_get_object_vars.php.inc | 15 +++++++++++++++ .../NodeAnalyzer/PropertyWriteonlyAnalyzer.php | 11 ++--------- 2 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 rules-tests/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector/Fixture/skip_used_by_get_object_vars.php.inc diff --git a/rules-tests/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector/Fixture/skip_used_by_get_object_vars.php.inc b/rules-tests/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector/Fixture/skip_used_by_get_object_vars.php.inc new file mode 100644 index 00000000000..1eeb5707f4d --- /dev/null +++ b/rules-tests/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector/Fixture/skip_used_by_get_object_vars.php.inc @@ -0,0 +1,15 @@ +nodeTypeResolver->isObjectType( - $class, - new ObjectType('JsonSerializable') - ); - - return (bool) $this->betterNodeFinder->findFirst($class, function (Node $node) use ( - $isImplementsJsonSerializable - ): bool { - if ($isImplementsJsonSerializable && $node instanceof FuncCall && $this->nodeNameResolver->isName( + return (bool) $this->betterNodeFinder->findFirst($class, function (Node $node) : bool { + if ($node instanceof FuncCall && $this->nodeNameResolver->isName( $node, 'get_object_vars' ) && ! $node->isFirstClassCallable()) { From 99f8dd50828632e6cef9359e27b91fb77ce1fb4f Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 13 May 2026 09:48:06 +0700 Subject: [PATCH 2/4] [DeadCode] Skip used by get_object_vars on RemoveUnusedPromotedPropertyRector --- rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php | 1 - 1 file changed, 1 deletion(-) diff --git a/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php b/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php index 271b48eb160..221485ae1fe 100644 --- a/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php +++ b/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php @@ -13,7 +13,6 @@ use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt\Class_; -use PHPStan\Type\ObjectType; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\NodeTypeResolver; From 842ec0409319cd023a655b37ebd383b59efb5d01 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 13 May 2026 02:49:34 +0000 Subject: [PATCH 3/4] [ci-review] Rector Rectify --- rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php b/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php index 221485ae1fe..1fa36f08c82 100644 --- a/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php +++ b/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php @@ -15,14 +15,12 @@ use PhpParser\Node\Stmt\Class_; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; -use Rector\NodeTypeResolver\NodeTypeResolver; use Rector\PhpParser\Node\BetterNodeFinder; final readonly class PropertyWriteonlyAnalyzer { public function __construct( private BetterNodeFinder $betterNodeFinder, - private NodeTypeResolver $nodeTypeResolver, private NodeNameResolver $nodeNameResolver ) { } From 74a331bac91b66e872577e444e3a666ae4936f4e Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 13 May 2026 09:50:31 +0700 Subject: [PATCH 4/4] trigger CI