From 9d3b97a8be77e3a0112536ab638f66aee0027044 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 18 Oct 2023 11:52:11 +0200 Subject: [PATCH] Add pointless names in RenameForeachValueVariableToMatchMethodCallReturnTypeRector --- .../Fixture/skip_get_iterator.php.inc | 15 +++++++++++++++ .../Naming/Guard/BreakingVariableRenameGuard.php | 5 ++++- ...eVariableToMatchMethodCallReturnTypeRector.php | 9 +++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 rules-tests/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector/Fixture/skip_get_iterator.php.inc diff --git a/rules-tests/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector/Fixture/skip_get_iterator.php.inc b/rules-tests/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector/Fixture/skip_get_iterator.php.inc new file mode 100644 index 00000000000..c6592d8d1f0 --- /dev/null +++ b/rules-tests/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector/Fixture/skip_get_iterator.php.inc @@ -0,0 +1,15 @@ +getIterator() as $someItem) { + echo $someItem; + } + } +} diff --git a/rules/Naming/Guard/BreakingVariableRenameGuard.php b/rules/Naming/Guard/BreakingVariableRenameGuard.php index 2a50b28490e..9af6a719dac 100644 --- a/rules/Naming/Guard/BreakingVariableRenameGuard.php +++ b/rules/Naming/Guard/BreakingVariableRenameGuard.php @@ -197,7 +197,10 @@ private function isGenerator(Param $param): bool return false; } - if (str_ends_with($paramType->getClassName(), 'Generator') || str_ends_with($paramType->getClassName(), 'Iterator')) { + if (str_ends_with($paramType->getClassName(), 'Generator') || str_ends_with( + $paramType->getClassName(), + 'Iterator' + )) { return true; } diff --git a/rules/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector.php b/rules/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector.php index df311f1b5ea..7a5622c8163 100644 --- a/rules/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector.php +++ b/rules/Naming/Rector/Foreach_/RenameForeachValueVariableToMatchMethodCallReturnTypeRector.php @@ -26,6 +26,11 @@ */ final class RenameForeachValueVariableToMatchMethodCallReturnTypeRector extends AbstractRector { + /** + * @var string[] + */ + private const UNREADABLE_GENERIC_NAMES = ['traversable', 'iterable', 'generator', 'rewindableGenerator']; + public function __construct( private readonly BreakingVariableRenameGuard $breakingVariableRenameGuard, private readonly ExpectedNameResolver $expectedNameResolver, @@ -145,6 +150,10 @@ function (Node $subNode) use ($node, &$hasRenamed): ?int { private function shouldSkip(VariableAndCallForeach $variableAndCallForeach, string $expectedName): bool { + if (in_array($expectedName, self::UNREADABLE_GENERIC_NAMES, true)) { + return true; + } + if ($this->namingConventionAnalyzer->isCallMatchingVariableName( $variableAndCallForeach->getCall(), $variableAndCallForeach->getVariableName(),