From d9899e4522d55f58163012c8f6e5184fc2a8cba0 Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Mon, 8 Jan 2018 19:17:00 +0100 Subject: [PATCH] prevent circular type resolving for just added node --- .../Application/TemplateMagicInvokeFilterCallRector.php | 6 ++++++ src/Rector/Contrib/Symfony/Form/FormIsValidRector.php | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/Rector/Contrib/Nette/Application/TemplateMagicInvokeFilterCallRector.php b/src/Rector/Contrib/Nette/Application/TemplateMagicInvokeFilterCallRector.php index 94bf740ba12..1a65566d91b 100644 --- a/src/Rector/Contrib/Nette/Application/TemplateMagicInvokeFilterCallRector.php +++ b/src/Rector/Contrib/Nette/Application/TemplateMagicInvokeFilterCallRector.php @@ -5,6 +5,7 @@ namespace Rector\Rector\Contrib\Nette\Application; use PhpParser\Node; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Identifier; +use Rector\Node\Attribute; use Rector\Node\MethodCallNodeFactory; use Rector\Node\NodeFactory; use Rector\NodeAnalyzer\MethodCallAnalyzer; @@ -54,6 +55,11 @@ final class TemplateMagicInvokeFilterCallRector extends AbstractRector public function isCandidate(Node $node): bool { + // skip just added calls + if ($node->getAttribute(Attribute::ORIGINAL_NODE) === null) { + return false; + } + return $this->methodCallAnalyzer->isTypeAndMagic($node, 'Nette\Bridges\ApplicationLatte\Template'); } diff --git a/src/Rector/Contrib/Symfony/Form/FormIsValidRector.php b/src/Rector/Contrib/Symfony/Form/FormIsValidRector.php index b49ff017f67..f24af61b928 100644 --- a/src/Rector/Contrib/Symfony/Form/FormIsValidRector.php +++ b/src/Rector/Contrib/Symfony/Form/FormIsValidRector.php @@ -38,6 +38,11 @@ final class FormIsValidRector extends AbstractRector public function isCandidate(Node $node): bool { + // skip just added calls + if ($node->getAttribute(Attribute::ORIGINAL_NODE) === null) { + return false; + } + if (! $this->methodCallAnalyzer->isTypeAndMethod( $node, 'Symfony\Component\Form\Form',