From f5ca8e7331ea55f6e7b79870f4ddb71e75c158f3 Mon Sep 17 00:00:00 2001 From: orklah Date: Mon, 22 Nov 2021 20:52:32 +0100 Subject: [PATCH 1/8] fix some iterator stubs --- stubs/CoreGenericIterators.phpstub | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 34ad308d324..9b82d125405 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -319,8 +319,9 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun /** * @template-covariant TKey * @template-covariant TValue + * @template TIterator as Traversable * - * @template-extends IteratorIterator + * @template-extends IteratorIterator */ class FilterIterator extends IteratorIterator { /** @return bool */ @@ -379,10 +380,11 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA /** * @template-covariant TKey * @template-covariant TValue + * @template TIterator as Traversable * * @template-implements OuterIterator * - * @template-extends FilterIterator + * @template-extends FilterIterator */ class CallbackFilterIterator extends FilterIterator implements OuterIterator { /** @@ -829,9 +831,10 @@ class RecursiveCachingIterator extends CachingIterator implements RecursiveItera /** * @template TKey * @template TValue + * @template TIterator as Traversable * * @template-implements RecursiveIterator - * @template-extends CallbackFilterIterator + * @template-extends CallbackFilterIterator */ class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator { @@ -841,7 +844,7 @@ class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements */ public function __construct(RecursiveIterator $iterator, callable $callback) {} /** - * @return RecursiveCallbackFilterIterator + * @return RecursiveCallbackFilterIterator */ public function getChildren() {} From 53a9504195fc8bc2d16e98bb04fcd3bb4085f0af Mon Sep 17 00:00:00 2001 From: orklah Date: Tue, 23 Nov 2021 00:01:10 +0100 Subject: [PATCH 2/8] fix iterators --- stubs/CoreGenericIterators.phpstub | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 9b82d125405..438df8f6ba6 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -134,7 +134,7 @@ class IteratorIterator implements OuterIterator { * @template TValue * @template TIterator as Traversable * - * @template-extends IteratorIterator + * @template-extends IteratorIterator */ class AppendIterator extends IteratorIterator { public function __construct(){} @@ -341,11 +341,12 @@ class FilterIterator extends IteratorIterator { /** * @template-covariant TKey * @template-covariant TValue + * @template TIterator as Traversable * * @template-implements OuterIterator * @template-implements ArrayAccess * - * @template-extends IteratorIterator + * @template-extends IteratorIterator */ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayAccess , Countable { const CALL_TOSTRING = 1 ; @@ -529,8 +530,9 @@ class GlobIterator extends FilesystemIterator implements Countable { /** * @template-covariant TKey * @template-covariant TValue + * @template TIterator as Traversable * - * @template-extends IteratorIterator + * @template-extends IteratorIterator */ class InfiniteIterator extends IteratorIterator { /** @@ -554,10 +556,11 @@ class InfiniteIterator extends IteratorIterator { /** * @template-covariant TKey * @template-covariant TValue + * @template TIterator as Traversable * * @template-implements OuterIterator * - * @template-extends IteratorIterator + * @template-extends IteratorIterator */ class LimitIterator extends IteratorIterator implements OuterIterator { /** @@ -583,8 +586,9 @@ class LimitIterator extends IteratorIterator implements OuterIterator { /** * @template-covariant TKey * @template-covariant TValue + * @template TIterator as Traversable * - * @template-extends IteratorIterator + * @template-extends IteratorIterator */ class NoRewindIterator extends IteratorIterator { /** From 3f4625d0fb2ca8b615fe32bd7965a2ac4fbede71 Mon Sep 17 00:00:00 2001 From: orklah Date: Sun, 23 Jan 2022 08:20:08 +0100 Subject: [PATCH 3/8] update stubs --- stubs/CoreGenericIterators.phpstub | 47 +++++++++++++++++------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 438df8f6ba6..9d0130be1f0 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -357,7 +357,7 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA const FULL_CACHE = 256 ; /** - * @param Iterator $iterator + * @param TIterator $iterator * @param int-mask-of $flags */ public function __construct(Iterator $iterator, int $flags = self::CALL_TOSTRING) {} @@ -389,8 +389,8 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA */ class CallbackFilterIterator extends FilterIterator implements OuterIterator { /** - * @param Iterator $iterator - * @param callable(TValue, TKey, Iterator): bool $callback + * @param TIterator $iterator + * @param callable(TValue, TKey, TIterator): bool $callback */ public function __construct(Iterator $iterator, callable $callback) {} @@ -536,7 +536,7 @@ class GlobIterator extends FilesystemIterator implements Countable { */ class InfiniteIterator extends IteratorIterator { /** - * @param Iterator $iterator + * @param TIterator $iterator */ public function __construct(Iterator $iterator) {} @@ -564,7 +564,7 @@ class InfiniteIterator extends IteratorIterator { */ class LimitIterator extends IteratorIterator implements OuterIterator { /** - * @param Iterator $iterator + * @param TIterator $iterator */ public function __construct(Iterator $iterator, int $offset = 0, int $count = -1) {} @@ -592,7 +592,7 @@ class LimitIterator extends IteratorIterator implements OuterIterator { */ class NoRewindIterator extends IteratorIterator { /** - * @param Iterator $iterator + * @param TIterator $iterator */ public function __construct(Iterator $iterator) {} @@ -674,18 +674,19 @@ class MultipleIterator implements Iterator { /** * @template TKey * @template TValue + * @template TIterator as RecursiveIterator * - * @template-extends FilterIterator + * @template-extends FilterIterator * @template-implements RecursiveIterator */ abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator { /** - * @param RecursiveIterator $iterator + * @param TIterator $iterator */ public function __construct(RecursiveIterator $iterator) {} /** - * @return RecursiveFilterIterator + * @return TIterator */ public function getChildren() {} @@ -710,8 +711,9 @@ abstract class RecursiveFilterIterator extends FilterIterator implements Recursi /** * @template TKey * @template TValue + * @template TIterator as RecursiveIterator * - * @template-extends RecursiveFilterIterator + * @template-extends RecursiveFilterIterator */ class ParentIterator extends RecursiveFilterIterator implements RecursiveIterator, OuterIterator { @@ -720,7 +722,7 @@ class ParentIterator extends RecursiveFilterIterator implements RecursiveIterato */ public function accept() {} /** - * @param RecursiveIterator $iterator + * @param TIterator $iterator */ public function __construct(RecursiveIterator $iterator) {} /** @@ -791,9 +793,10 @@ class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator /** * @template TKey * @template TValue + * @template TIterator as Iterator * * @template-implements RecursiveIterator - * @template-extends ArrayIterator + * @template-extends CachingIterator */ class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator { @@ -805,12 +808,12 @@ class RecursiveCachingIterator extends CachingIterator implements RecursiveItera const FULL_CACHE = 256 ; /** - * @param Iterator $iterator + * @param TIterator $iterator * @param int-mask-of $flags */ public function __construct(Iterator $iterator, int $flags = 0) {} /** - * @return RecursiveCachingIterator + * @return RecursiveCachingIterator */ public function getChildren() {} @@ -835,7 +838,7 @@ class RecursiveCachingIterator extends CachingIterator implements RecursiveItera /** * @template TKey * @template TValue - * @template TIterator as Traversable + * @template TIterator as RecursiveIterator * * @template-implements RecursiveIterator * @template-extends CallbackFilterIterator @@ -843,8 +846,8 @@ class RecursiveCachingIterator extends CachingIterator implements RecursiveItera class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator { /** - * @param RecursiveIterator $iterator - * @param callable(TValue, TKey, RecursiveIterator): bool $callback + * @param TIterator $iterator + * @param callable(TValue, TKey, TIterator): bool $callback */ public function __construct(RecursiveIterator $iterator, callable $callback) {} /** @@ -933,9 +936,10 @@ class RecursiveIteratorIterator implements OuterIterator { /** * @template TKey * @template TValue + * @template TIterator as RecursiveIterator * * @template-implements RecursiveIterator - * @template-extends RegexIterator + * @template-extends RegexIterator */ class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator { @@ -947,7 +951,7 @@ class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator const USE_KEY = 1 ; /** - * @param RecursiveIterator $iterator + * @param TIterator $iterator * @param string $regex * @param self::MATH|self::GET_MATCH|self::ALL_MATCHES|self::SPLIT|self::REPLACE $mode * @param self::USE_KEY|0 $flags @@ -1070,8 +1074,9 @@ class RecursiveTreeIterator extends RecursiveIteratorIterator implements OuterIt /** * @template TKey * @template TValue + * @template TIterator as Traversable * - * @template-extends FilterIterator + * @template-extends FilterIterator */ class RegexIterator extends FilterIterator { const MATCH = 0 ; @@ -1082,7 +1087,7 @@ class RegexIterator extends FilterIterator { const USE_KEY = 1 ; /** - * @param Iterator $iterator + * @param TIterator $iterator * @param string $regex * @param self::MATCH|self::GET_MATCH|self::ALL_MATCHES|self::SPLIT|self::REPLACE $mode * @param int-mask $flags From dcd0537de8f3e88a6f10ebd3eb22e930ec750f3d Mon Sep 17 00:00:00 2001 From: orklah Date: Sun, 23 Jan 2022 08:25:21 +0100 Subject: [PATCH 4/8] fix a test --- tests/GeneratorTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/GeneratorTest.php b/tests/GeneratorTest.php index 12ca3020f04..1090b47faec 100644 --- a/tests/GeneratorTest.php +++ b/tests/GeneratorTest.php @@ -287,7 +287,7 @@ function generator(): Generator $iterator = new NoRewindIterator(generator()); ', 'assertions' => [ - '$iterator' => 'NoRewindIterator', + '$iterator' => 'NoRewindIterator>', ] ], 'detectYieldInNew' => [ From feb779eb9b98a74685591fbd09d20576f6c2a446 Mon Sep 17 00:00:00 2001 From: orklah Date: Sun, 30 Jan 2022 00:23:45 +0100 Subject: [PATCH 5/8] fixes --- stubs/CoreGenericIterators.phpstub | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 9d0130be1f0..27ecb089499 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -104,7 +104,7 @@ interface SeekableIterator extends Iterator { /** * @template-covariant TKey * @template-covariant TValue - * @template TIterator as Traversable + * @template-covariant TIterator as Iterator * * @template-implements OuterIterator * @@ -132,7 +132,7 @@ class IteratorIterator implements OuterIterator { /** * @template TKey * @template TValue - * @template TIterator as Traversable + * @template TIterator as Iterator * * @template-extends IteratorIterator */ @@ -319,11 +319,11 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun /** * @template-covariant TKey * @template-covariant TValue - * @template TIterator as Traversable + * @template-covariant TIterator as Traversable * * @template-extends IteratorIterator */ -class FilterIterator extends IteratorIterator { +abstract class FilterIterator extends IteratorIterator { /** @return bool */ abstract public function accept(); @@ -341,7 +341,7 @@ class FilterIterator extends IteratorIterator { /** * @template-covariant TKey * @template-covariant TValue - * @template TIterator as Traversable + * @template-covariant TIterator as Iterator * * @template-implements OuterIterator * @template-implements ArrayAccess @@ -381,7 +381,7 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA /** * @template-covariant TKey * @template-covariant TValue - * @template TIterator as Traversable + * @template-covariant TIterator as Traversable * * @template-implements OuterIterator * @@ -530,7 +530,7 @@ class GlobIterator extends FilesystemIterator implements Countable { /** * @template-covariant TKey * @template-covariant TValue - * @template TIterator as Traversable + * @template-covariant TIterator as Iterator * * @template-extends IteratorIterator */ @@ -556,7 +556,7 @@ class InfiniteIterator extends IteratorIterator { /** * @template-covariant TKey * @template-covariant TValue - * @template TIterator as Traversable + * @template-covariant TIterator as Iterator * * @template-implements OuterIterator * @@ -586,7 +586,7 @@ class LimitIterator extends IteratorIterator implements OuterIterator { /** * @template-covariant TKey * @template-covariant TValue - * @template TIterator as Traversable + * @template-covariant TIterator as Iterator * * @template-extends IteratorIterator */ @@ -1074,7 +1074,7 @@ class RecursiveTreeIterator extends RecursiveIteratorIterator implements OuterIt /** * @template TKey * @template TValue - * @template TIterator as Traversable + * @template TIterator as Iterator * * @template-extends FilterIterator */ From 60a223124456bd3bbabe682717ff00c20d86faed Mon Sep 17 00:00:00 2001 From: orklah Date: Sun, 30 Jan 2022 00:32:27 +0100 Subject: [PATCH 6/8] fixes --- stubs/CoreGenericIterators.phpstub | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 27ecb089499..5da2e075bf7 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -381,7 +381,7 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA /** * @template-covariant TKey * @template-covariant TValue - * @template-covariant TIterator as Traversable + * @template-covariant TIterator as Iterator * * @template-implements OuterIterator * From 0dffbf1d9809612d65bde0097eed067cdfa917d2 Mon Sep 17 00:00:00 2001 From: orklah Date: Sun, 30 Jan 2022 00:35:47 +0100 Subject: [PATCH 7/8] fix a test --- tests/Template/ClassTemplateExtendsTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Template/ClassTemplateExtendsTest.php b/tests/Template/ClassTemplateExtendsTest.php index a5c45901c5d..85531986aba 100644 --- a/tests/Template/ClassTemplateExtendsTest.php +++ b/tests/Template/ClassTemplateExtendsTest.php @@ -3670,7 +3670,7 @@ public function foo(int $i): Container * @template-covariant TKey * @template-covariant TValue * - * @template-extends IteratorIterator> + * @template-extends IteratorIterator> */ abstract class MyFilterIterator extends IteratorIterator { /** @return bool */ From 944de75d9edd5bf0a11233d6739ee949e6f4f83e Mon Sep 17 00:00:00 2001 From: orklah Date: Sun, 30 Jan 2022 01:12:01 +0100 Subject: [PATCH 8/8] fix --- stubs/CoreGenericIterators.phpstub | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 5da2e075bf7..69966ca69c7 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -104,7 +104,7 @@ interface SeekableIterator extends Iterator { /** * @template-covariant TKey * @template-covariant TValue - * @template-covariant TIterator as Iterator + * @template-covariant TIterator as Traversable * * @template-implements OuterIterator *