From 48bc9ae8691b168b9ac8b2cb73d3ad90fc1ba127 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 12 Jul 2023 09:37:45 +0200 Subject: [PATCH 1/6] StrictArrayParamDimFetchRector failing test --- .../Fixture/string_array_union.php.inc | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/string_array_union.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/string_array_union.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/string_array_union.php.inc new file mode 100644 index 00000000000..cfc0a482f7b --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/string_array_union.php.inc @@ -0,0 +1,25 @@ + From 0e1afb5f917c831a5ce1b8212fddffae51bc6aaf Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 12 Jul 2023 09:41:40 +0200 Subject: [PATCH 2/6] Rename string_array_union.php.inc to skip_string_array_union.php.inc --- ...string_array_union.php.inc => skip_string_array_union.php.inc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/{string_array_union.php.inc => skip_string_array_union.php.inc} (100%) diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/string_array_union.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_string_array_union.php.inc similarity index 100% rename from rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/string_array_union.php.inc rename to rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_string_array_union.php.inc From fca2171821e5a1eac635696e9222c1f04bd69f31 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 12 Jul 2023 09:49:21 +0200 Subject: [PATCH 3/6] more failling tests --- .../Fixture/skip_is_bool.php.inc | 22 +++++++++++++++++++ .../Fixture/skip_is_float.php.inc | 22 +++++++++++++++++++ .../Fixture/skip_is_int.php.inc | 22 +++++++++++++++++++ ...y_union.php.inc => skip_is_string.php.inc} | 5 +---- 4 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc rename rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/{skip_string_array_union.php.inc => skip_is_string.php.inc} (83%) diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc new file mode 100644 index 00000000000..5a96bb82bcf --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc @@ -0,0 +1,22 @@ + diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc new file mode 100644 index 00000000000..a7a3a373c28 --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc @@ -0,0 +1,22 @@ + diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc new file mode 100644 index 00000000000..1874df70f30 --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc @@ -0,0 +1,22 @@ + diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_string_array_union.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_string.php.inc similarity index 83% rename from rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_string_array_union.php.inc rename to rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_string.php.inc index cfc0a482f7b..0d8aea59160 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_string_array_union.php.inc +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_string.php.inc @@ -2,11 +2,8 @@ namespace Rector\Tests\TypeDeclaration\Rector\ClassMethod\StrictArrayParamDimFetchRector\Fixture; -final class StringArrayUnion +final class SkipIsString { - /** - * @param string|array $ids - */ private function getLabelsForIds($ids) { if (is_string($ids)) { From dc68fcb21d8830ab7e874903fac9ca2165b47187 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 12 Jul 2023 09:49:53 +0200 Subject: [PATCH 4/6] fix --- .../Fixture/skip_is_float.php.inc | 2 +- .../StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc index a7a3a373c28..72853059198 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc @@ -2,7 +2,7 @@ namespace Rector\Tests\TypeDeclaration\Rector\ClassMethod\StrictArrayParamDimFetchRector\Fixture; -final class SkipIsBool +final class SkipIsFloat { private function getLabelsForIds($ids) { diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc index 1874df70f30..ac6cb6944df 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc @@ -2,7 +2,7 @@ namespace Rector\Tests\TypeDeclaration\Rector\ClassMethod\StrictArrayParamDimFetchRector\Fixture; -final class SkipIsString +final class SkipIsInt { private function getLabelsForIds($ids) { From ca3ebe8a8a478fdaca7a80bfdbac0503e04b09e6 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 12 Jul 2023 09:54:09 +0200 Subject: [PATCH 5/6] fix --- .../StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc | 2 -- .../Fixture/skip_is_float.php.inc | 2 -- .../StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc | 2 -- .../Fixture/skip_is_string.php.inc | 2 -- 4 files changed, 8 deletions(-) diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc index 5a96bb82bcf..aed2e1e3b06 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_bool.php.inc @@ -18,5 +18,3 @@ final class SkipIsBool } } } - -?> diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc index 72853059198..cbbd9dda259 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_float.php.inc @@ -18,5 +18,3 @@ final class SkipIsFloat } } } - -?> diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc index ac6cb6944df..0f8809c2edf 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_int.php.inc @@ -18,5 +18,3 @@ final class SkipIsInt } } } - -?> diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_string.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_string.php.inc index 0d8aea59160..9e95c0b54c8 100644 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_string.php.inc +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector/Fixture/skip_is_string.php.inc @@ -18,5 +18,3 @@ final class SkipIsString } } } - -?> From 1a4ad52305269d143c1ff45bc0d57344c21651b2 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 12 Jul 2023 09:54:51 +0200 Subject: [PATCH 6/6] Update StrictArrayParamDimFetchRector.php --- .../Rector/ClassMethod/StrictArrayParamDimFetchRector.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php b/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php index 17c57860881..5675a66f498 100644 --- a/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php +++ b/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php @@ -104,7 +104,7 @@ private function isParamAccessedArrayDimFetch(Param $param, ClassMethod|Function $paramName, &$isParamAccessedArrayDimFetch ): int|null { - if ($node instanceof FuncCall && $this->isName($node, 'is_array')) { + if ($node instanceof FuncCall && $this->isNames($node, ['is_array', 'is_string', 'is_int', 'is_bool', 'is_float'])) { $firstArg = $node->getArgs()[0]; if ($this->isName($firstArg->value, $paramName)) { return NodeTraverser::STOP_TRAVERSAL;