From 2747f028c9f44b7e059a8412b01a8e53ec51b0f8 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 18 Jul 2022 16:24:10 +0200 Subject: [PATCH 1/4] Update `CachingIterator::getCache` stub. --- stubs/CoreGenericIterators.phpstub | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 69966ca69c7..b7ee45551bb 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -355,7 +355,7 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA const TOSTRING_USE_CURRENT = 4 ; const TOSTRING_USE_INNER = 8 ; const FULL_CACHE = 256 ; - + /** * @param TIterator $iterator * @param int-mask-of $flags @@ -376,6 +376,11 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA * @psalm-ignore-nullable-return */ public function key() {} + + /** + * @return array + */ + public function getCache() {} } /** From f4da6aafaabebc8faadf0bd4491be09949523b32 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 18 Jul 2022 18:13:08 +0200 Subject: [PATCH 2/4] Update stub based on PR feedback. --- stubs/CoreGenericIterators.phpstub | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index b7ee45551bb..9ed07e489b8 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -342,6 +342,7 @@ abstract class FilterIterator extends IteratorIterator { * @template-covariant TKey * @template-covariant TValue * @template-covariant TIterator as Iterator + * @template TFlags of int-mask<1,2,4,8,16,256> * * @template-implements OuterIterator * @template-implements ArrayAccess @@ -358,7 +359,7 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA /** * @param TIterator $iterator - * @param int-mask-of $flags + * @param TFlags $flags */ public function __construct(Iterator $iterator, int $flags = self::CALL_TOSTRING) {} @@ -378,6 +379,8 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA public function key() {} /** + * @psalm-if-this-is self + * * @return array */ public function getCache() {} From 3e0f0b61732a0c255251493b2ba44f0619109cc3 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 21 Jul 2022 08:16:10 +0200 Subject: [PATCH 3/4] Update `CachingIterator`, remove newly added `@template`. Also update `RecursiveCachingIterator`, remove extended methods and constructor that are the same. --- stubs/CoreGenericIterators.phpstub | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index 9ed07e489b8..f74749b7d86 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -342,7 +342,6 @@ abstract class FilterIterator extends IteratorIterator { * @template-covariant TKey * @template-covariant TValue * @template-covariant TIterator as Iterator - * @template TFlags of int-mask<1,2,4,8,16,256> * * @template-implements OuterIterator * @template-implements ArrayAccess @@ -359,7 +358,7 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA /** * @param TIterator $iterator - * @param TFlags $flags + * @param int-mask<1,2,4,8,16,256> $flags */ public function __construct(Iterator $iterator, int $flags = self::CALL_TOSTRING) {} @@ -379,8 +378,6 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA public function key() {} /** - * @psalm-if-this-is self - * * @return array */ public function getCache() {} @@ -807,19 +804,6 @@ class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator * @template-extends CachingIterator */ class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator { - - const CALL_TOSTRING = 1 ; - const CATCH_GET_CHILD = 16 ; - const TOSTRING_USE_KEY = 2 ; - const TOSTRING_USE_CURRENT = 4 ; - const TOSTRING_USE_INNER = 8 ; - const FULL_CACHE = 256 ; - - /** - * @param TIterator $iterator - * @param int-mask-of $flags - */ - public function __construct(Iterator $iterator, int $flags = 0) {} /** * @return RecursiveCachingIterator */ @@ -829,18 +813,6 @@ class RecursiveCachingIterator extends CachingIterator implements RecursiveItera * @return bool */ public function hasChildren() {} - - /** - * @return TValue|null current value or null when iterator is drained - * @psalm-ignore-nullable-return - */ - public function current() {} - - /** - * @return TKey|null current key or null when iterator is drained - * @psalm-ignore-nullable-return - */ - public function key() {} } /** From 63b64532d64fae488db85aad709ef7adb35251ec Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Fri, 22 Jul 2022 18:38:12 +0200 Subject: [PATCH 4/4] Update `CachingIterator`, use `int-mask-of`. --- stubs/CoreGenericIterators.phpstub | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/CoreGenericIterators.phpstub b/stubs/CoreGenericIterators.phpstub index f74749b7d86..f4432d23aa6 100644 --- a/stubs/CoreGenericIterators.phpstub +++ b/stubs/CoreGenericIterators.phpstub @@ -358,7 +358,7 @@ class CachingIterator extends IteratorIterator implements OuterIterator , ArrayA /** * @param TIterator $iterator - * @param int-mask<1,2,4,8,16,256> $flags + * @param int-mask-of $flags */ public function __construct(Iterator $iterator, int $flags = self::CALL_TOSTRING) {}