From 0db2b3558c1acfc5453e0e2a2113f782d6a3fd78 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sun, 12 Oct 2025 03:53:41 +0700 Subject: [PATCH 1/4] [TypeDeclaration] Skip override from parent method on AddParamStringTypeFromSprintfUseRector --- .../Fixture/skip_override_from_parent.php.inc | 13 +++++++++++++ .../Source/SomeParentClass.php | 10 ++++++++++ 2 files changed, 23 insertions(+) create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Fixture/skip_override_from_parent.php.inc create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Source/SomeParentClass.php diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Fixture/skip_override_from_parent.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Fixture/skip_override_from_parent.php.inc new file mode 100644 index 00000000000..ac6122129e2 --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Fixture/skip_override_from_parent.php.inc @@ -0,0 +1,13 @@ + Date: Sun, 12 Oct 2025 03:54:54 +0700 Subject: [PATCH 2/4] fix --- .../ClassMethod/AddParamStringTypeFromSprintfUseRector.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php b/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php index ae658b909c8..1523fb23165 100644 --- a/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php +++ b/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php @@ -10,6 +10,7 @@ use PhpParser\Node\Stmt\Function_; use Rector\Rector\AbstractRector; use Rector\TypeDeclaration\NodeAnalyzer\VariableInSprintfMaskMatcher; +use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -20,6 +21,7 @@ final class AddParamStringTypeFromSprintfUseRector extends AbstractRector { public function __construct( private readonly VariableInSprintfMaskMatcher $variableInSprintfMaskMatcher, + private readonly ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard ) { } @@ -73,6 +75,10 @@ public function refactor(Node $node): ClassMethod|Function_|null return null; } + if ($this->parentClassMethodTypeOverrideGuard->hasParentClassMethod($node)) { + return null; + } + $hasChanged = false; foreach ($node->getParams() as $param) { if ($param->type instanceof Node) { From 2ac468eebed5c26f1c8b5f3c06edef2b8e4e4ebc Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sun, 12 Oct 2025 03:55:27 +0700 Subject: [PATCH 3/4] fix --- .../Source/SomeParentClass.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Source/SomeParentClass.php b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Source/SomeParentClass.php index d6f546cfc3a..1ea040c5686 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Source/SomeParentClass.php +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector/Source/SomeParentClass.php @@ -7,4 +7,4 @@ class SomeParentClass public function test($name) { } -} \ No newline at end of file +} From e8890303a14a39360eb1a44d2854138d6230dc5f Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sun, 12 Oct 2025 03:59:26 +0700 Subject: [PATCH 4/4] fix --- .../ClassMethod/AddParamStringTypeFromSprintfUseRector.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php b/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php index 1523fb23165..31aa561e05f 100644 --- a/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php +++ b/rules/TypeDeclaration/Rector/ClassMethod/AddParamStringTypeFromSprintfUseRector.php @@ -75,7 +75,7 @@ public function refactor(Node $node): ClassMethod|Function_|null return null; } - if ($this->parentClassMethodTypeOverrideGuard->hasParentClassMethod($node)) { + if ($node instanceof ClassMethod && $this->parentClassMethodTypeOverrideGuard->hasParentClassMethod($node)) { return null; }