diff --git a/ext/spl/spl_iterators.stub.php b/ext/spl/spl_iterators.stub.php index 859a454b59113..9d80717f85d8f 100644 --- a/ext/spl/spl_iterators.stub.php +++ b/ext/spl/spl_iterators.stub.php @@ -4,28 +4,28 @@ class EmptyIterator implements Iterator { - /** @return mixed */ - public function current() {} + /** @tentative-return-type */ + public function current(): never {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} - /** @return mixed */ - public function key() {} + /** @tentative-return-type */ + public function key(): never {} - /** @return bool */ - public function valid() {} + /** @tentative-return-type */ + public function valid(): bool {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} } class CallbackFilterIterator extends FilterIterator { public function __construct(Iterator $iterator, callable $callback) {} - /** @return bool */ - public function accept() {} + /** @tentative-return-type */ + public function accept(): bool {} } class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator @@ -33,132 +33,132 @@ class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements public function __construct(RecursiveIterator $iterator, callable $callback) {} /** - * @return bool + * @tentative-return-type * @implementation-alias RecursiveFilterIterator::hasChildren */ - public function hasChildren() {} + public function hasChildren(): bool {} - /** @return RecursiveCallbackFilterIterator */ - public function getChildren() {} + /** @tentative-return-type */ + public function getChildren(): RecursiveCallbackFilterIterator {} } interface RecursiveIterator extends Iterator { - /** @return bool */ - public function hasChildren(); + /** @tentative-return-type */ + public function hasChildren(): bool; - /** @return RecursiveIterator|null */ - public function getChildren(); + /** @tentative-return-type */ + public function getChildren(): ?RecursiveIterator; } class RecursiveIteratorIterator implements OuterIterator { public function __construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0) {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} - /** @return bool */ - public function valid() {} + /** @tentative-return-type */ + public function valid(): bool {} - /** @return mixed */ - public function key() {} + /** @tentative-return-type */ + public function key(): mixed {} - /** @return mixed */ - public function current() {} + /** @tentative-return-type */ + public function current(): mixed {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} - /** @return int */ - public function getDepth() {} + /** @tentative-return-type */ + public function getDepth(): int {} - /** @return RecursiveIterator|null */ - public function getSubIterator(?int $level = null) {} + /** @tentative-return-type */ + public function getSubIterator(?int $level = null): ?RecursiveIterator {} - /** @return RecursiveIterator */ - public function getInnerIterator() {} + /** @tentative-return-type */ + public function getInnerIterator(): RecursiveIterator {} - /** @return void */ - public function beginIteration() {} + /** @tentative-return-type */ + public function beginIteration(): void {} - /** @return void */ - public function endIteration() {} + /** @tentative-return-type */ + public function endIteration(): void {} - /** @return bool|null */ - public function callHasChildren() {} + /** @tentative-return-type */ + public function callHasChildren(): bool {} - /** @return RecursiveIterator|null */ - public function callGetChildren() {} + /** @tentative-return-type */ + public function callGetChildren(): ?RecursiveIterator {} - /** @return void */ - public function beginChildren() {} + /** @tentative-return-type */ + public function beginChildren(): void {} - /** @return void */ - public function endChildren() {} + /** @tentative-return-type */ + public function endChildren(): void {} - /** @return void */ - public function nextElement() {} + /** @tentative-return-type */ + public function nextElement(): void {} - /** @return void */ - public function setMaxDepth(int $maxDepth = -1) {} + /** @tentative-return-type */ + public function setMaxDepth(int $maxDepth = -1): void {} - /** @return int|false */ - public function getMaxDepth() {} + /** @tentative-return-type */ + public function getMaxDepth(): int|false {} } interface OuterIterator extends Iterator { - /** @return Iterator|null */ - public function getInnerIterator(); + /** @tentative-return-type */ + public function getInnerIterator(): ?Iterator; } class IteratorIterator implements OuterIterator { public function __construct(Traversable $iterator, ?string $class = null) {} - /** @return Iterator|null */ - public function getInnerIterator() {} + /** @tentative-return-type */ + public function getInnerIterator(): ?Iterator {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} - /** @return bool */ - public function valid() {} + /** @tentative-return-type */ + public function valid(): bool {} - /** @return mixed */ - public function key() {} + /** @tentative-return-type */ + public function key(): mixed {} - /** @return mixed */ - public function current() {} + /** @tentative-return-type */ + public function current(): mixed {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} } abstract class FilterIterator extends IteratorIterator { - /** @return bool */ - abstract public function accept(); + /** @tentative-return-type */ + abstract public function accept(): bool; public function __construct(Iterator $iterator) {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} } abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator { public function __construct(RecursiveIterator $iterator) {} - /** @return bool */ - public function hasChildren() {} + /** @tentative-return-type */ + public function hasChildren(): bool {} - /** @return RecursiveFilterIterator|null */ - public function getChildren() {} + /** @tentative-return-type */ + public function getChildren(): ?RecursiveFilterIterator {} } class ParentIterator extends RecursiveFilterIterator @@ -166,156 +166,156 @@ class ParentIterator extends RecursiveFilterIterator public function __construct(RecursiveIterator $iterator) {} /** - * @return bool + * @tentative-return-type * @implementation-alias RecursiveFilterIterator::hasChildren */ - public function accept() {} + public function accept(): bool {} } interface SeekableIterator extends Iterator { - /** @return void */ - public function seek(int $offset); + /** @tentative-return-type */ + public function seek(int $offset): void; } class LimitIterator extends IteratorIterator { public function __construct(Iterator $iterator, int $offset = 0, int $limit = -1) {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} - /** @return bool */ - public function valid() {} + /** @tentative-return-type */ + public function valid(): bool {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} - /** @return int */ - public function seek(int $offset) {} + /** @tentative-return-type */ + public function seek(int $offset): int {} - /** @return int */ - public function getPosition() {} + /** @tentative-return-type */ + public function getPosition(): int {} } class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable { public function __construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING) {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} - /** @return bool */ - public function valid() {} + /** @tentative-return-type */ + public function valid(): bool {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} - /** @return bool */ - public function hasNext() {} + /** @tentative-return-type */ + public function hasNext(): bool {} public function __toString(): string {} - /** @return int */ - public function getFlags() {} + /** @tentative-return-type */ + public function getFlags(): int {} - /** @return void */ - public function setFlags(int $flags) {} + /** @tentative-return-type */ + public function setFlags(int $flags): void {} /** * @param string $key - * @return mixed + * @tentative-return-type */ - public function offsetGet($key) {} + public function offsetGet($key): mixed {} /** * @param string $key - * @return void + * @tentative-return-type */ - public function offsetSet($key, mixed $value) {} + public function offsetSet($key, mixed $value): void {} /** * @param string $key - * @return void + * @tentative-return-type */ - public function offsetUnset($key) {} + public function offsetUnset($key): void {} /** * @param string $key - * @return bool + * @tentative-return-type */ - public function offsetExists($key) {} + public function offsetExists($key): bool {} - /** @return array */ - public function getCache() {} + /** @tentative-return-type */ + public function getCache(): array {} - /** @return int */ - public function count() {} + /** @tentative-return-type */ + public function count(): int {} } class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator { public function __construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING) {} - /** @return bool */ - public function hasChildren() {} + /** @tentative-return-type */ + public function hasChildren(): bool {} - /** @return RecursiveCachingIterator|null */ - public function getChildren() {} + /** @tentative-return-type */ + public function getChildren(): ?RecursiveCachingIterator {} } class NoRewindIterator extends IteratorIterator { public function __construct(Iterator $iterator) {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} - /** @return bool */ - public function valid() {} + /** @tentative-return-type */ + public function valid(): bool {} - /** @return mixed */ - public function key() {} + /** @tentative-return-type */ + public function key(): mixed {} - /** @return mixed */ - public function current() {} + /** @tentative-return-type */ + public function current(): mixed {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} } class AppendIterator extends IteratorIterator { public function __construct() {} - /** @return void */ - public function append(Iterator $iterator) {} + /** @tentative-return-type */ + public function append(Iterator $iterator): void {} - /** @return void */ - public function rewind() {} + /** @tentative-return-type */ + public function rewind(): void {} - /** @return bool */ - public function valid() {} + /** @tentative-return-type */ + public function valid(): bool {} - /** @return mixed */ - public function current() {} + /** @tentative-return-type */ + public function current(): mixed {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} - /** @return int|null */ - public function getIteratorIndex() {} + /** @tentative-return-type */ + public function getIteratorIndex(): ?int {} - /** @return ArrayIterator */ - public function getArrayIterator() {} + /** @tentative-return-type */ + public function getArrayIterator(): ArrayIterator {} } class InfiniteIterator extends IteratorIterator { public function __construct(Iterator $iterator) {} - /** @return void */ - public function next() {} + /** @tentative-return-type */ + public function next(): void {} } class RegexIterator extends FilterIterator @@ -324,46 +324,46 @@ class RegexIterator extends FilterIterator public function __construct(Iterator $iterator, string $pattern, int $mode = RegexIterator::MATCH, int $flags = 0, int $pregFlags = 0) {} - /** @return bool */ - public function accept() {} + /** @tentative-return-type */ + public function accept(): bool {} - /** @return int */ - public function getMode() {} + /** @tentative-return-type */ + public function getMode(): int {} - /** @return void */ - public function setMode(int $mode) {} + /** @tentative-return-type */ + public function setMode(int $mode): void {} - /** @return int */ - public function getFlags() {} + /** @tentative-return-type */ + public function getFlags(): int {} - /** @return void */ - public function setFlags(int $flags) {} + /** @tentative-return-type */ + public function setFlags(int $flags): void {} - /** @return string */ - public function getRegex() {} + /** @tentative-return-type */ + public function getRegex(): string {} - /** @return int */ - public function getPregFlags() {} + /** @tentative-return-type */ + public function getPregFlags(): int {} - /** @return void */ - public function setPregFlags(int $pregFlags) {} + /** @tentative-return-type */ + public function setPregFlags(int $pregFlags): void {} } class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator { public function __construct(RecursiveIterator $iterator, string $pattern, int $mode = RecursiveRegexIterator::MATCH, int $flags = 0, int $pregFlags = 0) {} - /** @return bool */ - public function accept() {} + /** @tentative-return-type */ + public function accept(): bool {} /** - * @return bool + * @tentative-return-type * @implementation-alias RecursiveFilterIterator::hasChildren */ - public function hasChildren() {} + public function hasChildren(): bool {} - /** @return RecursiveRegexIterator */ - public function getChildren() {} + /** @tentative-return-type */ + public function getChildren(): RecursiveRegexIterator {} } class RecursiveTreeIterator extends RecursiveIteratorIterator @@ -376,24 +376,24 @@ public function __construct( int $mode = RecursiveTreeIterator::SELF_FIRST ) {} - /** @return mixed */ - public function key() {} + /** @tentative-return-type */ + public function key(): mixed {} - /** @return mixed */ - public function current() {} + /** @tentative-return-type */ + public function current(): mixed {} - /** @return string */ - public function getPrefix() {} + /** @tentative-return-type */ + public function getPrefix(): string {} - /** @return void */ - public function setPostfix(string $postfix) {} + /** @tentative-return-type */ + public function setPostfix(string $postfix): void {} - /** @return void */ - public function setPrefixPart(int $part, string $value) {} + /** @tentative-return-type */ + public function setPrefixPart(int $part, string $value): void {} - /** @return string */ - public function getEntry() {} + /** @tentative-return-type */ + public function getEntry(): string {} - /** @return string */ - public function getPostfix() {} + /** @tentative-return-type */ + public function getPostfix(): string {} } diff --git a/ext/spl/spl_iterators_arginfo.h b/ext/spl/spl_iterators_arginfo.h index fbda9c21ddb85..f1621937efa00 100644 --- a/ext/spl/spl_iterators_arginfo.h +++ b/ext/spl/spl_iterators_arginfo.h @@ -1,36 +1,40 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: e2b69f8f12c782da28c95f16e04483bd6588e6ab */ + * Stub hash: 889a6eed2d62fbb6af168146840189d37765dbaa */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_EmptyIterator_current, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_EmptyIterator_current, 0, 0, never, 0) ZEND_END_ARG_INFO() -#define arginfo_class_EmptyIterator_next arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_EmptyIterator_next, 0, 0, IS_VOID, 0) +ZEND_END_ARG_INFO() #define arginfo_class_EmptyIterator_key arginfo_class_EmptyIterator_current -#define arginfo_class_EmptyIterator_valid arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_EmptyIterator_valid, 0, 0, _IS_BOOL, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_EmptyIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_EmptyIterator_rewind arginfo_class_EmptyIterator_next ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CallbackFilterIterator___construct, 0, 0, 2) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0) ZEND_END_ARG_INFO() -#define arginfo_class_CallbackFilterIterator_accept arginfo_class_EmptyIterator_current +#define arginfo_class_CallbackFilterIterator_accept arginfo_class_EmptyIterator_valid ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveCallbackFilterIterator___construct, 0, 0, 2) ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0) ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0) ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveCallbackFilterIterator_hasChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveCallbackFilterIterator_hasChildren arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveCallbackFilterIterator_getChildren arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveCallbackFilterIterator_getChildren, 0, 0, RecursiveCallbackFilterIterator, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveIterator_hasChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIterator_hasChildren arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveIterator_getChildren arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveIterator_getChildren, 0, 0, RecursiveIterator, 1) +ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveIteratorIterator___construct, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0) @@ -38,86 +42,92 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveIteratorIterator___construct, 0, 0 ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveIteratorIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_rewind arginfo_class_EmptyIterator_next -#define arginfo_class_RecursiveIteratorIterator_valid arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_valid arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveIteratorIterator_key arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveIteratorIterator_key, 0, 0, IS_MIXED, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveIteratorIterator_current arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_current arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_RecursiveIteratorIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_next arginfo_class_EmptyIterator_next -#define arginfo_class_RecursiveIteratorIterator_getDepth arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveIteratorIterator_getDepth, 0, 0, IS_LONG, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveIteratorIterator_getSubIterator, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveIteratorIterator_getSubIterator, 0, 0, RecursiveIterator, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, level, IS_LONG, 1, "null") ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveIteratorIterator_getInnerIterator arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveIteratorIterator_getInnerIterator, 0, 0, RecursiveIterator, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveIteratorIterator_beginIteration arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_beginIteration arginfo_class_EmptyIterator_next -#define arginfo_class_RecursiveIteratorIterator_endIteration arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_endIteration arginfo_class_EmptyIterator_next -#define arginfo_class_RecursiveIteratorIterator_callHasChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_callHasChildren arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveIteratorIterator_callGetChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_callGetChildren arginfo_class_RecursiveIterator_getChildren -#define arginfo_class_RecursiveIteratorIterator_beginChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_beginChildren arginfo_class_EmptyIterator_next -#define arginfo_class_RecursiveIteratorIterator_endChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_endChildren arginfo_class_EmptyIterator_next -#define arginfo_class_RecursiveIteratorIterator_nextElement arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveIteratorIterator_nextElement arginfo_class_EmptyIterator_next -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveIteratorIterator_setMaxDepth, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveIteratorIterator_setMaxDepth, 0, 0, IS_VOID, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, maxDepth, IS_LONG, 0, "-1") ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveIteratorIterator_getMaxDepth arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_RecursiveIteratorIterator_getMaxDepth, 0, 0, MAY_BE_LONG|MAY_BE_FALSE) +ZEND_END_ARG_INFO() -#define arginfo_class_OuterIterator_getInnerIterator arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_OuterIterator_getInnerIterator, 0, 0, Iterator, 1) +ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IteratorIterator___construct, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, class, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -#define arginfo_class_IteratorIterator_getInnerIterator arginfo_class_EmptyIterator_current +#define arginfo_class_IteratorIterator_getInnerIterator arginfo_class_OuterIterator_getInnerIterator -#define arginfo_class_IteratorIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_IteratorIterator_rewind arginfo_class_EmptyIterator_next -#define arginfo_class_IteratorIterator_valid arginfo_class_EmptyIterator_current +#define arginfo_class_IteratorIterator_valid arginfo_class_EmptyIterator_valid -#define arginfo_class_IteratorIterator_key arginfo_class_EmptyIterator_current +#define arginfo_class_IteratorIterator_key arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_IteratorIterator_current arginfo_class_EmptyIterator_current +#define arginfo_class_IteratorIterator_current arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_IteratorIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_IteratorIterator_next arginfo_class_EmptyIterator_next -#define arginfo_class_FilterIterator_accept arginfo_class_EmptyIterator_current +#define arginfo_class_FilterIterator_accept arginfo_class_EmptyIterator_valid ZEND_BEGIN_ARG_INFO_EX(arginfo_class_FilterIterator___construct, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_END_ARG_INFO() -#define arginfo_class_FilterIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_FilterIterator_rewind arginfo_class_EmptyIterator_next -#define arginfo_class_FilterIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_FilterIterator_next arginfo_class_EmptyIterator_next ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveFilterIterator___construct, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0) ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveFilterIterator_hasChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveFilterIterator_hasChildren arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveFilterIterator_getChildren arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveFilterIterator_getChildren, 0, 0, RecursiveFilterIterator, 1) +ZEND_END_ARG_INFO() #define arginfo_class_ParentIterator___construct arginfo_class_RecursiveFilterIterator___construct -#define arginfo_class_ParentIterator_accept arginfo_class_EmptyIterator_current +#define arginfo_class_ParentIterator_accept arginfo_class_EmptyIterator_valid -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SeekableIterator_seek, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SeekableIterator_seek, 0, 1, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_END_ARG_INFO() @@ -127,95 +137,108 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_LimitIterator___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, limit, IS_LONG, 0, "-1") ZEND_END_ARG_INFO() -#define arginfo_class_LimitIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_LimitIterator_rewind arginfo_class_EmptyIterator_next -#define arginfo_class_LimitIterator_valid arginfo_class_EmptyIterator_current +#define arginfo_class_LimitIterator_valid arginfo_class_EmptyIterator_valid -#define arginfo_class_LimitIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_LimitIterator_next arginfo_class_EmptyIterator_next -#define arginfo_class_LimitIterator_seek arginfo_class_SeekableIterator_seek +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_LimitIterator_seek, 0, 1, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_LimitIterator_getPosition arginfo_class_EmptyIterator_current +#define arginfo_class_LimitIterator_getPosition arginfo_class_RecursiveIteratorIterator_getDepth ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator___construct, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "CachingIterator::CALL_TOSTRING") ZEND_END_ARG_INFO() -#define arginfo_class_CachingIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_CachingIterator_rewind arginfo_class_EmptyIterator_next -#define arginfo_class_CachingIterator_valid arginfo_class_EmptyIterator_current +#define arginfo_class_CachingIterator_valid arginfo_class_EmptyIterator_valid -#define arginfo_class_CachingIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_CachingIterator_next arginfo_class_EmptyIterator_next -#define arginfo_class_CachingIterator_hasNext arginfo_class_EmptyIterator_current +#define arginfo_class_CachingIterator_hasNext arginfo_class_EmptyIterator_valid ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator___toString, 0, 0, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_CachingIterator_getFlags arginfo_class_EmptyIterator_current +#define arginfo_class_CachingIterator_getFlags arginfo_class_RecursiveIteratorIterator_getDepth -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator_setFlags, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_setFlags, 0, 1, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator_offsetGet, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetGet, 0, 1, IS_MIXED, 0) ZEND_ARG_INFO(0, key) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator_offsetSet, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetSet, 0, 2, IS_VOID, 0) ZEND_ARG_INFO(0, key) ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0) ZEND_END_ARG_INFO() -#define arginfo_class_CachingIterator_offsetUnset arginfo_class_CachingIterator_offsetGet +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetUnset, 0, 1, IS_VOID, 0) + ZEND_ARG_INFO(0, key) +ZEND_END_ARG_INFO() -#define arginfo_class_CachingIterator_offsetExists arginfo_class_CachingIterator_offsetGet +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetExists, 0, 1, _IS_BOOL, 0) + ZEND_ARG_INFO(0, key) +ZEND_END_ARG_INFO() -#define arginfo_class_CachingIterator_getCache arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_getCache, 0, 0, IS_ARRAY, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_CachingIterator_count arginfo_class_EmptyIterator_current +#define arginfo_class_CachingIterator_count arginfo_class_RecursiveIteratorIterator_getDepth ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveCachingIterator___construct, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "RecursiveCachingIterator::CALL_TOSTRING") ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveCachingIterator_hasChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveCachingIterator_hasChildren arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveCachingIterator_getChildren arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveCachingIterator_getChildren, 0, 0, RecursiveCachingIterator, 1) +ZEND_END_ARG_INFO() #define arginfo_class_NoRewindIterator___construct arginfo_class_FilterIterator___construct -#define arginfo_class_NoRewindIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_NoRewindIterator_rewind arginfo_class_EmptyIterator_next -#define arginfo_class_NoRewindIterator_valid arginfo_class_EmptyIterator_current +#define arginfo_class_NoRewindIterator_valid arginfo_class_EmptyIterator_valid -#define arginfo_class_NoRewindIterator_key arginfo_class_EmptyIterator_current +#define arginfo_class_NoRewindIterator_key arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_NoRewindIterator_current arginfo_class_EmptyIterator_current +#define arginfo_class_NoRewindIterator_current arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_NoRewindIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_NoRewindIterator_next arginfo_class_EmptyIterator_next -#define arginfo_class_AppendIterator___construct arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_AppendIterator___construct, 0, 0, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_AppendIterator_append arginfo_class_FilterIterator___construct +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_AppendIterator_append, 0, 1, IS_VOID, 0) + ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_AppendIterator_rewind arginfo_class_EmptyIterator_current +#define arginfo_class_AppendIterator_rewind arginfo_class_EmptyIterator_next -#define arginfo_class_AppendIterator_valid arginfo_class_EmptyIterator_current +#define arginfo_class_AppendIterator_valid arginfo_class_EmptyIterator_valid -#define arginfo_class_AppendIterator_current arginfo_class_EmptyIterator_current +#define arginfo_class_AppendIterator_current arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_AppendIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_AppendIterator_next arginfo_class_EmptyIterator_next -#define arginfo_class_AppendIterator_getIteratorIndex arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_AppendIterator_getIteratorIndex, 0, 0, IS_LONG, 1) +ZEND_END_ARG_INFO() -#define arginfo_class_AppendIterator_getArrayIterator arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_AppendIterator_getArrayIterator, 0, 0, ArrayIterator, 0) +ZEND_END_ARG_INFO() #define arginfo_class_InfiniteIterator___construct arginfo_class_FilterIterator___construct -#define arginfo_class_InfiniteIterator_next arginfo_class_EmptyIterator_current +#define arginfo_class_InfiniteIterator_next arginfo_class_EmptyIterator_next ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RegexIterator___construct, 0, 0, 2) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) @@ -225,23 +248,24 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RegexIterator___construct, 0, 0, 2) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pregFlags, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -#define arginfo_class_RegexIterator_accept arginfo_class_EmptyIterator_current +#define arginfo_class_RegexIterator_accept arginfo_class_EmptyIterator_valid -#define arginfo_class_RegexIterator_getMode arginfo_class_EmptyIterator_current +#define arginfo_class_RegexIterator_getMode arginfo_class_RecursiveIteratorIterator_getDepth -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RegexIterator_setMode, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RegexIterator_setMode, 0, 1, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0) ZEND_END_ARG_INFO() -#define arginfo_class_RegexIterator_getFlags arginfo_class_EmptyIterator_current +#define arginfo_class_RegexIterator_getFlags arginfo_class_RecursiveIteratorIterator_getDepth #define arginfo_class_RegexIterator_setFlags arginfo_class_CachingIterator_setFlags -#define arginfo_class_RegexIterator_getRegex arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RegexIterator_getRegex, 0, 0, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_RegexIterator_getPregFlags arginfo_class_EmptyIterator_current +#define arginfo_class_RegexIterator_getPregFlags arginfo_class_RecursiveIteratorIterator_getDepth -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RegexIterator_setPregFlags, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RegexIterator_setPregFlags, 0, 1, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, pregFlags, IS_LONG, 0) ZEND_END_ARG_INFO() @@ -253,11 +277,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveRegexIterator___construct, 0, 0, 2 ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pregFlags, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveRegexIterator_accept arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveRegexIterator_accept arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveRegexIterator_hasChildren arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveRegexIterator_hasChildren arginfo_class_EmptyIterator_valid -#define arginfo_class_RecursiveRegexIterator_getChildren arginfo_class_EmptyIterator_current +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveRegexIterator_getChildren, 0, 0, RecursiveRegexIterator, 0) +ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator___construct, 0, 0, 1) ZEND_ARG_INFO(0, iterator) @@ -266,24 +291,24 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "RecursiveTreeIterator::SELF_FIRST") ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveTreeIterator_key arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveTreeIterator_key arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_RecursiveTreeIterator_current arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveTreeIterator_current arginfo_class_RecursiveIteratorIterator_key -#define arginfo_class_RecursiveTreeIterator_getPrefix arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveTreeIterator_getPrefix arginfo_class_RegexIterator_getRegex -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator_setPostfix, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveTreeIterator_setPostfix, 0, 1, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, postfix, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator_setPrefixPart, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveTreeIterator_setPrefixPart, 0, 2, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, part, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_RecursiveTreeIterator_getEntry arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveTreeIterator_getEntry arginfo_class_RegexIterator_getRegex -#define arginfo_class_RecursiveTreeIterator_getPostfix arginfo_class_EmptyIterator_current +#define arginfo_class_RecursiveTreeIterator_getPostfix arginfo_class_RegexIterator_getRegex ZEND_METHOD(EmptyIterator, current); diff --git a/ext/spl/tests/array_005.phpt b/ext/spl/tests/array_005.phpt index cae8f422a785f..66f0f16f02f74 100644 --- a/ext/spl/tests/array_005.phpt +++ b/ext/spl/tests/array_005.phpt @@ -35,7 +35,7 @@ class StudentIdFilter extends FilterIterator $this->id = $other->getId(); } - public function accept() + public function accept(): bool { echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n"; return $this->current()->getId() == $this->id; diff --git a/ext/spl/tests/array_009a.phpt b/ext/spl/tests/array_009a.phpt index f8428810dbf85..b0b58e33e89ad 100644 --- a/ext/spl/tests/array_009a.phpt +++ b/ext/spl/tests/array_009a.phpt @@ -10,7 +10,7 @@ class MyRecursiveArrayIterator extends ArrayIterator implements RecursiveIterato return is_array($this->current()); } - function getChildren() + function getChildren(): MyRecursiveArrayIterator { return new MyRecursiveArrayIterator($this->current()); } diff --git a/ext/spl/tests/bug37457.phpt b/ext/spl/tests/bug37457.phpt index c8ee4df89702a..e8c7d7b9afca8 100644 --- a/ext/spl/tests/bug37457.phpt +++ b/ext/spl/tests/bug37457.phpt @@ -13,25 +13,25 @@ class Collection implements Iterator $this->array = $a; } - public function current() + public function current(): mixed { echo __METHOD__ . "\n"; return current($this->array); } - public function key() + public function key(): mixed { echo __METHOD__ . "\n"; return key($this->array); } - public function next() + public function next(): void { echo __METHOD__ . "\n"; $this->valid = (false !== next($this->array)); } - public function valid() + public function valid(): bool { echo __METHOD__ . "\n"; return $this->valid; @@ -46,7 +46,7 @@ class Collection implements Iterator class TestFilter extends FilterIterator { - public function accept() + public function accept(): bool { echo __METHOD__ . "\n"; throw new Exception("Failure in Accept"); diff --git a/ext/spl/tests/bug42703.phpt b/ext/spl/tests/bug42703.phpt index af2b1b8459585..d869fef0d58b0 100644 --- a/ext/spl/tests/bug42703.phpt +++ b/ext/spl/tests/bug42703.phpt @@ -6,18 +6,18 @@ class BlaIterator implements Iterator { public function rewind(): void { } - public function next() { } + public function next(): void { } - public function valid() { + public function valid(): bool { return true; } - public function current() + public function current(): mixed { throw new Exception('boo'); } - public function key() { } + public function key(): mixed { return null; } } $it = new BlaIterator(); diff --git a/ext/spl/tests/bug54384.phpt b/ext/spl/tests/bug54384.phpt index fa02e372f524d..6b33590e5b220 100644 --- a/ext/spl/tests/bug54384.phpt +++ b/ext/spl/tests/bug54384.phpt @@ -24,7 +24,7 @@ test( function() { echo "FilterIterator... "; class FilterIteratorTest extends FilterIterator { function __construct(){} - function accept(){} + function accept(): bool {} } test( function() { $o = new FilterIteratorTest; @@ -34,7 +34,7 @@ test( function() { echo "RecursiveFilterIterator... "; class RecursiveFilterIteratorTest extends RecursiveFilterIterator { function __construct(){} - function accept(){} + function accept(): bool {} } test( function() { $o = new RecursiveFilterIteratorTest; diff --git a/ext/spl/tests/bug69970.phpt b/ext/spl/tests/bug69970.phpt index 6f179a230b7d9..75ae8bf0d81a6 100644 --- a/ext/spl/tests/bug69970.phpt +++ b/ext/spl/tests/bug69970.phpt @@ -9,7 +9,7 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator { function rewind(): void { echo "dummy\n"; } - function endChildren() { + function endChildren(): void { global $count; echo $this->getDepth(); if (--$count > 0) { diff --git a/ext/spl/tests/bug73423.phpt b/ext/spl/tests/bug73423.phpt index e1fc312651a42..2e00b328d7083 100644 --- a/ext/spl/tests/bug73423.phpt +++ b/ext/spl/tests/bug73423.phpt @@ -7,39 +7,39 @@ class foo implements \RecursiveIterator { public $foo = []; - public Function current () + public Function current(): mixed { return current ($this->foo); } - public Function key () + public Function key(): mixed { return key ($this->foo); } - public Function next () + public Function next(): void { next ($this->foo); } - public Function rewind () + public Function rewind(): void { reset ($this->foo); } - public Function valid () + public Function valid(): bool { return current ($this->foo) !== false; } - public Function getChildren () + public Function getChildren(): ?RecursiveIterator { return current ($this->foo); } - public Function hasChildren () + public Function hasChildren(): bool { - return (bool) count ($this->foo); + return (bool) count($this->foo); } } @@ -53,7 +53,7 @@ class fooIterator extends \RecursiveFilterIterator /* CRASH */ } - public Function accept () + public Function accept(): bool { return true; } diff --git a/ext/spl/tests/bug74669.phpt b/ext/spl/tests/bug74669.phpt index e942d2c5f0761..0966a4cf27e15 100644 --- a/ext/spl/tests/bug74669.phpt +++ b/ext/spl/tests/bug74669.phpt @@ -19,22 +19,22 @@ class Container implements Iterator $this->container->append($element); } - public function current() + public function current(): mixed { return $this->iterator->current(); } - public function next() + public function next(): void { $this->iterator->next(); } - public function key() + public function key(): mixed { return $this->iterator->key(); } - public function valid() + public function valid(): bool { return $this->iterator->valid(); } diff --git a/ext/spl/tests/bug77263.phpt b/ext/spl/tests/bug77263.phpt index ddd5fba3cd499..386744793a9cb 100644 --- a/ext/spl/tests/bug77263.phpt +++ b/ext/spl/tests/bug77263.phpt @@ -9,11 +9,11 @@ touch("$dir/file1"); touch("$dir/subdir/file2"); class Filter1 extends RecursiveFilterIterator { - public function accept() { return $this->getInnerIterator()->getSubPathname() != ''; } + public function accept(): bool { return $this->getInnerIterator()->getSubPathname() != ''; } } class Filter2 extends RecursiveFilterIterator { - public function accept() { return $this->getInnerIterator()->getSubPathname() != ' '; } + public function accept(): bool { return $this->getInnerIterator()->getSubPathname() != ' '; } } $iterator = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS ); diff --git a/ext/spl/tests/iterator_001.phpt b/ext/spl/tests/iterator_001.phpt index 2517e0b566140..6912aa5643e12 100644 --- a/ext/spl/tests/iterator_001.phpt +++ b/ext/spl/tests/iterator_001.phpt @@ -20,26 +20,26 @@ class NumericArrayIterator implements Iterator $this->i = 0; } - public function valid() + public function valid(): bool { $ret = $this->i < count($this->a); echo __METHOD__ . '(' . ($ret ? 'true' : 'false') . ")\n"; return $ret; } - public function key() + public function key(): mixed { echo __METHOD__ . "\n"; return $this->i; } - public function current() + public function current(): mixed { echo __METHOD__ . "\n"; return $this->a[$this->i]; } - public function next() + public function next(): void { echo __METHOD__ . "\n"; $this->i++; @@ -54,7 +54,7 @@ class NumericArrayIterator implements Iterator class SeekableNumericArrayIterator extends NumericArrayIterator implements SeekableIterator { - public function seek($index) + public function seek($index): void { if ($index < count($this->a)) { $this->i = $index; diff --git a/ext/spl/tests/iterator_003.phpt b/ext/spl/tests/iterator_003.phpt index b7b331a496d5a..dfb44b94f9b5d 100644 --- a/ext/spl/tests/iterator_003.phpt +++ b/ext/spl/tests/iterator_003.phpt @@ -35,7 +35,7 @@ class StudentIdFilter extends FilterIterator $this->id = $other->getId(); } - public function accept() + public function accept(): bool { echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n"; return $this->current()->getId() == $this->id; diff --git a/ext/spl/tests/iterator_004.phpt b/ext/spl/tests/iterator_004.phpt index bb849580308d7..bc23ed35475c5 100644 --- a/ext/spl/tests/iterator_004.phpt +++ b/ext/spl/tests/iterator_004.phpt @@ -20,26 +20,26 @@ class NumericArrayIterator implements Iterator $this->i = 0; } - public function valid() + public function valid(): bool { $ret = $this->i < count($this->a); echo __METHOD__ . '(' . ($ret ? 'true' : 'false') . ")\n"; return $ret; } - public function key() + public function key(): mixed { echo __METHOD__ . "\n"; return $this->i; } - public function current() + public function current(): mixed { echo __METHOD__ . "\n"; return $this->a[$this->i]; } - public function next() + public function next(): void { echo __METHOD__ . "\n"; $this->i++; @@ -48,7 +48,7 @@ class NumericArrayIterator implements Iterator class SeekableNumericArrayIterator extends NumericArrayIterator implements SeekableIterator { - public function seek($index) + public function seek($index): void { if ($index < count($this->a)) { $this->i = $index; diff --git a/ext/spl/tests/iterator_007.phpt b/ext/spl/tests/iterator_007.phpt index 9ad087da367d0..f1cb11229d65d 100644 --- a/ext/spl/tests/iterator_007.phpt +++ b/ext/spl/tests/iterator_007.phpt @@ -39,22 +39,22 @@ class NoRewindIteratorEx extends NoRewindIterator echo __METHOD__ . "\n"; parent::rewind(); } - function valid() + function valid(): bool { echo __METHOD__ . "\n"; return parent::valid(); } - function current() + function current(): mixed { echo __METHOD__ . "\n"; return parent::current(); } - function key() + function key(): mixed { echo __METHOD__ . "\n"; return parent::key(); } - function next() + function next(): void { echo __METHOD__ . "\n"; parent::next(); diff --git a/ext/spl/tests/iterator_009.phpt b/ext/spl/tests/iterator_009.phpt index 19447deac458e..bd8eb99c4d0db 100644 --- a/ext/spl/tests/iterator_009.phpt +++ b/ext/spl/tests/iterator_009.phpt @@ -5,27 +5,27 @@ SPL: EmptyIterator class EmptyIteratorEx extends EmptyIterator { - function rewind() + function rewind(): void { echo __METHOD__ . "\n"; parent::rewind(); } - function valid() + function valid(): bool { echo __METHOD__ . "\n"; return parent::valid(); } - function current() + function current(): never { echo __METHOD__ . "\n"; - return parent::current(); + parent::current(); } - function key() + function key(): never { echo __METHOD__ . "\n"; - return parent::key(); + parent::key(); } - function next() + function next(): void { echo __METHOD__ . "\n"; parent::next(); diff --git a/ext/spl/tests/iterator_014.phpt b/ext/spl/tests/iterator_014.phpt index 5e15854ad10e9..d68a968954b40 100644 --- a/ext/spl/tests/iterator_014.phpt +++ b/ext/spl/tests/iterator_014.phpt @@ -27,42 +27,42 @@ class MyRecursiveArrayIterator extends RecursiveArrayIterator class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator { - function rewind() + function rewind(): void { echo __METHOD__ . "\n"; parent::rewind(); } - function valid() + function valid(): bool { echo __METHOD__ . "\n"; return parent::valid(); } - function current() + function current(): mixed { echo __METHOD__ . "\n"; return parent::current(); } - function key() + function key(): mixed { echo __METHOD__ . "\n"; return parent::key(); } - function next() + function next(): void { echo __METHOD__ . "\n"; parent::next(); } - function beginChildren() + function beginChildren(): void { echo __METHOD__ . "(".$this->getDepth().")\n"; } - function endChildren() + function endChildren(): void { echo __METHOD__ . "(".$this->getDepth().")\n"; } diff --git a/ext/spl/tests/iterator_015.phpt b/ext/spl/tests/iterator_015.phpt index f83366bb1c43d..6237533a58db0 100644 --- a/ext/spl/tests/iterator_015.phpt +++ b/ext/spl/tests/iterator_015.phpt @@ -5,21 +5,21 @@ SPL: RecursiveIteratorIterator and beginChildren/endChildren class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator { - function rewind() + function rewind(): void { echo "