From ed785ceb8916a3b304011faa576b6098f0c79c69 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 22 Jun 2022 08:29:59 +0200 Subject: [PATCH 1/3] Add `NoRewindIterator`. --- stubs/iterable.stub | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/stubs/iterable.stub b/stubs/iterable.stub index e6cb2275d6..3a47a9f13a 100644 --- a/stubs/iterable.stub +++ b/stubs/iterable.stub @@ -217,7 +217,6 @@ class CallbackFilterIterator extends FilterIterator } - /** * @template-covariant TKey * @template-covariant TValue @@ -276,7 +275,6 @@ class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator public function uksort($cmp_function) { } } - /** * @template TKey of array-key * @template TValue @@ -298,3 +296,28 @@ class AppendIterator extends IteratorIterator { public function getArrayIterator() {} } + +/** + * @template-covariant TKey + * @template-covariant TValue + * @template TIterator as Iterator + * + * @template-extends IteratorIterator + */ +class NoRewindIterator extends IteratorIterator { + /** + * @param TIterator $iterator + */ + public function __construct(Iterator $iterator) {} + + /** + * @return TValue|null + */ + public function current() {} + + /** + * @return TKey|null + */ + public function key() {} +} + From efa7f54edda318337c40e0d12f6167700fee021b Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 22 Jun 2022 15:42:32 +0200 Subject: [PATCH 2/3] Update `parameters.featureToggles.skipGenericClasses`. --- conf/config.neon | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/config.neon b/conf/config.neon index eca15e28b4..75ea8cb4a0 100644 --- a/conf/config.neon +++ b/conf/config.neon @@ -26,6 +26,7 @@ parameters: - FilterIterator - RecursiveCallbackFilterIterator - AppendIterator + - NoRewindIterator explicitMixedInUnknownGenericNew: false explicitMixedForGlobalVariables: false explicitMixedViaIsArray: false From 6bf4b5e4ae58c15454edd2b5ef83d602be349329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Mirtes?= Date: Thu, 23 Jun 2022 09:39:23 +0200 Subject: [PATCH 3/3] Update iterable.stub --- stubs/iterable.stub | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/iterable.stub b/stubs/iterable.stub index 3a47a9f13a..dd9b7fab1d 100644 --- a/stubs/iterable.stub +++ b/stubs/iterable.stub @@ -311,12 +311,12 @@ class NoRewindIterator extends IteratorIterator { public function __construct(Iterator $iterator) {} /** - * @return TValue|null + * @return TValue */ public function current() {} /** - * @return TKey|null + * @return TKey */ public function key() {} }