diff --git a/rules/dead-code/src/Rector/ClassMethod/RemoveUnusedParameterRector.php b/rules/dead-code/src/Rector/ClassMethod/RemoveUnusedParameterRector.php index ceb4ac5c73e8..c50f72cdb3f9 100644 --- a/rules/dead-code/src/Rector/ClassMethod/RemoveUnusedParameterRector.php +++ b/rules/dead-code/src/Rector/ClassMethod/RemoveUnusedParameterRector.php @@ -223,6 +223,10 @@ private function shouldSkip(ClassMethod $classMethod): bool return true; } + if ($this->shouldSkipOpenSourceEmpty($classMethod)) { + return true; + } + return $this->isAnonymousClass($class); } @@ -243,4 +247,14 @@ private function shouldSkipOpenSourceAbstract(ClassMethod $classMethod, Class_ $ return $classMethod->isPublic(); } + + private function shouldSkipOpenSourceEmpty(ClassMethod $classMethod): bool + { + // skip as possible contract for 3rd party + if (! $this->isOpenSourceProjectType()) { + return false; + } + + return empty($classMethod->getStmts()); + } } diff --git a/rules/dead-code/tests/Rector/ClassMethod/RemoveUnusedParameterRector/FixtureOpenSource/skip_empty_method_to_be_overridden.php.inc b/rules/dead-code/tests/Rector/ClassMethod/RemoveUnusedParameterRector/FixtureOpenSource/skip_empty_method_to_be_overridden.php.inc new file mode 100644 index 000000000000..479c3bef684b --- /dev/null +++ b/rules/dead-code/tests/Rector/ClassMethod/RemoveUnusedParameterRector/FixtureOpenSource/skip_empty_method_to_be_overridden.php.inc @@ -0,0 +1,10 @@ +