From 75900bd2fad24fab256152f18f7b397bdc2396e1 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Thu, 29 Oct 2026 18:51:11 +0700 Subject: [PATCH] [perf] Skip current file lookup when rule makes no change on RectorRunner::run() --- src/Rector/RectorRunner.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Rector/RectorRunner.php b/src/Rector/RectorRunner.php index ff17126bbfe..95232d70985 100644 --- a/src/Rector/RectorRunner.php +++ b/src/Rector/RectorRunner.php @@ -46,9 +46,6 @@ public function __construct( */ public function run(RectorInterface $rector, Node $node): int|Node|null|array { - $file = $this->getFile(); - $filePath = $file->getFilePath(); - // ensure origNode pulled before refactor to avoid changed during refactor, ref https://3v4l.org/YMEGN $originalNode = $node->getAttribute(AttributeKey::ORIGINAL_NODE) ?? $node; @@ -64,6 +61,9 @@ public function run(RectorInterface $rector, Node $node): int|Node|null|array throw new ShouldNotHappenException($errorMessage); } + $file = $this->getFile(); + $filePath = $file->getFilePath(); + if (is_int($refactoredNodeOrState)) { // only remove node is supported if ($refactoredNodeOrState !== NodeVisitor::REMOVE_NODE) {