Declare tentative return types in ext/spl - part 3 (#7239)

This commit is contained in:
Máté Kocsis 2021-07-16 12:09:05 +02:00 committed by GitHub
parent f2e374c881
commit b3e0888129
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
41 changed files with 431 additions and 406 deletions

View file

@ -4,28 +4,28 @@
class EmptyIterator implements Iterator class EmptyIterator implements Iterator
{ {
/** @return mixed */ /** @tentative-return-type */
public function current() {} public function current(): never {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
/** @return mixed */ /** @tentative-return-type */
public function key() {} public function key(): never {}
/** @return bool */ /** @tentative-return-type */
public function valid() {} public function valid(): bool {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
} }
class CallbackFilterIterator extends FilterIterator class CallbackFilterIterator extends FilterIterator
{ {
public function __construct(Iterator $iterator, callable $callback) {} public function __construct(Iterator $iterator, callable $callback) {}
/** @return bool */ /** @tentative-return-type */
public function accept() {} public function accept(): bool {}
} }
class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator
@ -33,132 +33,132 @@ class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements
public function __construct(RecursiveIterator $iterator, callable $callback) {} public function __construct(RecursiveIterator $iterator, callable $callback) {}
/** /**
* @return bool * @tentative-return-type
* @implementation-alias RecursiveFilterIterator::hasChildren * @implementation-alias RecursiveFilterIterator::hasChildren
*/ */
public function hasChildren() {} public function hasChildren(): bool {}
/** @return RecursiveCallbackFilterIterator */ /** @tentative-return-type */
public function getChildren() {} public function getChildren(): RecursiveCallbackFilterIterator {}
} }
interface RecursiveIterator extends Iterator interface RecursiveIterator extends Iterator
{ {
/** @return bool */ /** @tentative-return-type */
public function hasChildren(); public function hasChildren(): bool;
/** @return RecursiveIterator|null */ /** @tentative-return-type */
public function getChildren(); public function getChildren(): ?RecursiveIterator;
} }
class RecursiveIteratorIterator implements OuterIterator class RecursiveIteratorIterator implements OuterIterator
{ {
public function __construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0) {} public function __construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0) {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
/** @return bool */ /** @tentative-return-type */
public function valid() {} public function valid(): bool {}
/** @return mixed */ /** @tentative-return-type */
public function key() {} public function key(): mixed {}
/** @return mixed */ /** @tentative-return-type */
public function current() {} public function current(): mixed {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
/** @return int */ /** @tentative-return-type */
public function getDepth() {} public function getDepth(): int {}
/** @return RecursiveIterator|null */ /** @tentative-return-type */
public function getSubIterator(?int $level = null) {} public function getSubIterator(?int $level = null): ?RecursiveIterator {}
/** @return RecursiveIterator */ /** @tentative-return-type */
public function getInnerIterator() {} public function getInnerIterator(): RecursiveIterator {}
/** @return void */ /** @tentative-return-type */
public function beginIteration() {} public function beginIteration(): void {}
/** @return void */ /** @tentative-return-type */
public function endIteration() {} public function endIteration(): void {}
/** @return bool|null */ /** @tentative-return-type */
public function callHasChildren() {} public function callHasChildren(): bool {}
/** @return RecursiveIterator|null */ /** @tentative-return-type */
public function callGetChildren() {} public function callGetChildren(): ?RecursiveIterator {}
/** @return void */ /** @tentative-return-type */
public function beginChildren() {} public function beginChildren(): void {}
/** @return void */ /** @tentative-return-type */
public function endChildren() {} public function endChildren(): void {}
/** @return void */ /** @tentative-return-type */
public function nextElement() {} public function nextElement(): void {}
/** @return void */ /** @tentative-return-type */
public function setMaxDepth(int $maxDepth = -1) {} public function setMaxDepth(int $maxDepth = -1): void {}
/** @return int|false */ /** @tentative-return-type */
public function getMaxDepth() {} public function getMaxDepth(): int|false {}
} }
interface OuterIterator extends Iterator interface OuterIterator extends Iterator
{ {
/** @return Iterator|null */ /** @tentative-return-type */
public function getInnerIterator(); public function getInnerIterator(): ?Iterator;
} }
class IteratorIterator implements OuterIterator class IteratorIterator implements OuterIterator
{ {
public function __construct(Traversable $iterator, ?string $class = null) {} public function __construct(Traversable $iterator, ?string $class = null) {}
/** @return Iterator|null */ /** @tentative-return-type */
public function getInnerIterator() {} public function getInnerIterator(): ?Iterator {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
/** @return bool */ /** @tentative-return-type */
public function valid() {} public function valid(): bool {}
/** @return mixed */ /** @tentative-return-type */
public function key() {} public function key(): mixed {}
/** @return mixed */ /** @tentative-return-type */
public function current() {} public function current(): mixed {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
} }
abstract class FilterIterator extends IteratorIterator abstract class FilterIterator extends IteratorIterator
{ {
/** @return bool */ /** @tentative-return-type */
abstract public function accept(); abstract public function accept(): bool;
public function __construct(Iterator $iterator) {} public function __construct(Iterator $iterator) {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
} }
abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator
{ {
public function __construct(RecursiveIterator $iterator) {} public function __construct(RecursiveIterator $iterator) {}
/** @return bool */ /** @tentative-return-type */
public function hasChildren() {} public function hasChildren(): bool {}
/** @return RecursiveFilterIterator|null */ /** @tentative-return-type */
public function getChildren() {} public function getChildren(): ?RecursiveFilterIterator {}
} }
class ParentIterator extends RecursiveFilterIterator class ParentIterator extends RecursiveFilterIterator
@ -166,156 +166,156 @@ class ParentIterator extends RecursiveFilterIterator
public function __construct(RecursiveIterator $iterator) {} public function __construct(RecursiveIterator $iterator) {}
/** /**
* @return bool * @tentative-return-type
* @implementation-alias RecursiveFilterIterator::hasChildren * @implementation-alias RecursiveFilterIterator::hasChildren
*/ */
public function accept() {} public function accept(): bool {}
} }
interface SeekableIterator extends Iterator interface SeekableIterator extends Iterator
{ {
/** @return void */ /** @tentative-return-type */
public function seek(int $offset); public function seek(int $offset): void;
} }
class LimitIterator extends IteratorIterator class LimitIterator extends IteratorIterator
{ {
public function __construct(Iterator $iterator, int $offset = 0, int $limit = -1) {} public function __construct(Iterator $iterator, int $offset = 0, int $limit = -1) {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
/** @return bool */ /** @tentative-return-type */
public function valid() {} public function valid(): bool {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
/** @return int */ /** @tentative-return-type */
public function seek(int $offset) {} public function seek(int $offset): int {}
/** @return int */ /** @tentative-return-type */
public function getPosition() {} public function getPosition(): int {}
} }
class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable
{ {
public function __construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING) {} public function __construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING) {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
/** @return bool */ /** @tentative-return-type */
public function valid() {} public function valid(): bool {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
/** @return bool */ /** @tentative-return-type */
public function hasNext() {} public function hasNext(): bool {}
public function __toString(): string {} public function __toString(): string {}
/** @return int */ /** @tentative-return-type */
public function getFlags() {} public function getFlags(): int {}
/** @return void */ /** @tentative-return-type */
public function setFlags(int $flags) {} public function setFlags(int $flags): void {}
/** /**
* @param string $key * @param string $key
* @return mixed * @tentative-return-type
*/ */
public function offsetGet($key) {} public function offsetGet($key): mixed {}
/** /**
* @param string $key * @param string $key
* @return void * @tentative-return-type
*/ */
public function offsetSet($key, mixed $value) {} public function offsetSet($key, mixed $value): void {}
/** /**
* @param string $key * @param string $key
* @return void * @tentative-return-type
*/ */
public function offsetUnset($key) {} public function offsetUnset($key): void {}
/** /**
* @param string $key * @param string $key
* @return bool * @tentative-return-type
*/ */
public function offsetExists($key) {} public function offsetExists($key): bool {}
/** @return array */ /** @tentative-return-type */
public function getCache() {} public function getCache(): array {}
/** @return int */ /** @tentative-return-type */
public function count() {} public function count(): int {}
} }
class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator
{ {
public function __construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING) {} public function __construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING) {}
/** @return bool */ /** @tentative-return-type */
public function hasChildren() {} public function hasChildren(): bool {}
/** @return RecursiveCachingIterator|null */ /** @tentative-return-type */
public function getChildren() {} public function getChildren(): ?RecursiveCachingIterator {}
} }
class NoRewindIterator extends IteratorIterator class NoRewindIterator extends IteratorIterator
{ {
public function __construct(Iterator $iterator) {} public function __construct(Iterator $iterator) {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
/** @return bool */ /** @tentative-return-type */
public function valid() {} public function valid(): bool {}
/** @return mixed */ /** @tentative-return-type */
public function key() {} public function key(): mixed {}
/** @return mixed */ /** @tentative-return-type */
public function current() {} public function current(): mixed {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
} }
class AppendIterator extends IteratorIterator class AppendIterator extends IteratorIterator
{ {
public function __construct() {} public function __construct() {}
/** @return void */ /** @tentative-return-type */
public function append(Iterator $iterator) {} public function append(Iterator $iterator): void {}
/** @return void */ /** @tentative-return-type */
public function rewind() {} public function rewind(): void {}
/** @return bool */ /** @tentative-return-type */
public function valid() {} public function valid(): bool {}
/** @return mixed */ /** @tentative-return-type */
public function current() {} public function current(): mixed {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
/** @return int|null */ /** @tentative-return-type */
public function getIteratorIndex() {} public function getIteratorIndex(): ?int {}
/** @return ArrayIterator */ /** @tentative-return-type */
public function getArrayIterator() {} public function getArrayIterator(): ArrayIterator {}
} }
class InfiniteIterator extends IteratorIterator class InfiniteIterator extends IteratorIterator
{ {
public function __construct(Iterator $iterator) {} public function __construct(Iterator $iterator) {}
/** @return void */ /** @tentative-return-type */
public function next() {} public function next(): void {}
} }
class RegexIterator extends FilterIterator 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) {} public function __construct(Iterator $iterator, string $pattern, int $mode = RegexIterator::MATCH, int $flags = 0, int $pregFlags = 0) {}
/** @return bool */ /** @tentative-return-type */
public function accept() {} public function accept(): bool {}
/** @return int */ /** @tentative-return-type */
public function getMode() {} public function getMode(): int {}
/** @return void */ /** @tentative-return-type */
public function setMode(int $mode) {} public function setMode(int $mode): void {}
/** @return int */ /** @tentative-return-type */
public function getFlags() {} public function getFlags(): int {}
/** @return void */ /** @tentative-return-type */
public function setFlags(int $flags) {} public function setFlags(int $flags): void {}
/** @return string */ /** @tentative-return-type */
public function getRegex() {} public function getRegex(): string {}
/** @return int */ /** @tentative-return-type */
public function getPregFlags() {} public function getPregFlags(): int {}
/** @return void */ /** @tentative-return-type */
public function setPregFlags(int $pregFlags) {} public function setPregFlags(int $pregFlags): void {}
} }
class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator
{ {
public function __construct(RecursiveIterator $iterator, string $pattern, int $mode = RecursiveRegexIterator::MATCH, int $flags = 0, int $pregFlags = 0) {} public function __construct(RecursiveIterator $iterator, string $pattern, int $mode = RecursiveRegexIterator::MATCH, int $flags = 0, int $pregFlags = 0) {}
/** @return bool */ /** @tentative-return-type */
public function accept() {} public function accept(): bool {}
/** /**
* @return bool * @tentative-return-type
* @implementation-alias RecursiveFilterIterator::hasChildren * @implementation-alias RecursiveFilterIterator::hasChildren
*/ */
public function hasChildren() {} public function hasChildren(): bool {}
/** @return RecursiveRegexIterator */ /** @tentative-return-type */
public function getChildren() {} public function getChildren(): RecursiveRegexIterator {}
} }
class RecursiveTreeIterator extends RecursiveIteratorIterator class RecursiveTreeIterator extends RecursiveIteratorIterator
@ -376,24 +376,24 @@ class RecursiveTreeIterator extends RecursiveIteratorIterator
int $mode = RecursiveTreeIterator::SELF_FIRST int $mode = RecursiveTreeIterator::SELF_FIRST
) {} ) {}
/** @return mixed */ /** @tentative-return-type */
public function key() {} public function key(): mixed {}
/** @return mixed */ /** @tentative-return-type */
public function current() {} public function current(): mixed {}
/** @return string */ /** @tentative-return-type */
public function getPrefix() {} public function getPrefix(): string {}
/** @return void */ /** @tentative-return-type */
public function setPostfix(string $postfix) {} public function setPostfix(string $postfix): void {}
/** @return void */ /** @tentative-return-type */
public function setPrefixPart(int $part, string $value) {} public function setPrefixPart(int $part, string $value): void {}
/** @return string */ /** @tentative-return-type */
public function getEntry() {} public function getEntry(): string {}
/** @return string */ /** @tentative-return-type */
public function getPostfix() {} public function getPostfix(): string {}
} }

View file

@ -1,36 +1,40 @@
/* This is a generated file, edit the .stub.php file instead. /* 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() 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_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_BEGIN_ARG_INFO_EX(arginfo_class_CallbackFilterIterator___construct, 0, 0, 2)
ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0) ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveCallbackFilterIterator___construct, 0, 0, 2)
ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0) ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0)
ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0) ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveIteratorIterator___construct, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0) 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_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
ZEND_END_ARG_INFO() 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_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, level, IS_LONG, 1, "null")
ZEND_END_ARG_INFO() 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_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, maxDepth, IS_LONG, 0, "-1")
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_IteratorIterator___construct, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0) ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, class, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, class, IS_STRING, 1, "null")
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_FilterIterator___construct, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveFilterIterator___construct, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0) ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0)
ZEND_END_ARG_INFO() 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___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_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
ZEND_END_ARG_INFO() 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_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, limit, IS_LONG, 0, "-1")
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator___construct, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "CachingIterator::CALL_TOSTRING") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "CachingIterator::CALL_TOSTRING")
ZEND_END_ARG_INFO() 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_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator___toString, 0, 0, IS_STRING, 0)
ZEND_END_ARG_INFO() 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_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
ZEND_END_ARG_INFO() 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_ARG_INFO(0, key)
ZEND_END_ARG_INFO() 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_INFO(0, key)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0) ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveCachingIterator___construct, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "RecursiveCachingIterator::CALL_TOSTRING") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "RecursiveCachingIterator::CALL_TOSTRING")
ZEND_END_ARG_INFO() 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___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___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_BEGIN_ARG_INFO_EX(arginfo_class_RegexIterator___construct, 0, 0, 2)
ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0) 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_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pregFlags, IS_LONG, 0, "0")
ZEND_END_ARG_INFO() 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_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
ZEND_END_ARG_INFO() 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_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_ARG_TYPE_INFO(0, pregFlags, IS_LONG, 0)
ZEND_END_ARG_INFO() 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_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pregFlags, IS_LONG, 0, "0")
ZEND_END_ARG_INFO() 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_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator___construct, 0, 0, 1)
ZEND_ARG_INFO(0, iterator) 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_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "RecursiveTreeIterator::SELF_FIRST")
ZEND_END_ARG_INFO() 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_ARG_TYPE_INFO(0, postfix, IS_STRING, 0)
ZEND_END_ARG_INFO() 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, part, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
ZEND_END_ARG_INFO() 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); ZEND_METHOD(EmptyIterator, current);

View file

@ -35,7 +35,7 @@ class StudentIdFilter extends FilterIterator
$this->id = $other->getId(); $this->id = $other->getId();
} }
public function accept() public function accept(): bool
{ {
echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n"; echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n";
return $this->current()->getId() == $this->id; return $this->current()->getId() == $this->id;

View file

@ -10,7 +10,7 @@ class MyRecursiveArrayIterator extends ArrayIterator implements RecursiveIterato
return is_array($this->current()); return is_array($this->current());
} }
function getChildren() function getChildren(): MyRecursiveArrayIterator
{ {
return new MyRecursiveArrayIterator($this->current()); return new MyRecursiveArrayIterator($this->current());
} }

View file

@ -13,25 +13,25 @@ class Collection implements Iterator
$this->array = $a; $this->array = $a;
} }
public function current() public function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return current($this->array); return current($this->array);
} }
public function key() public function key(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return key($this->array); return key($this->array);
} }
public function next() public function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->valid = (false !== next($this->array)); $this->valid = (false !== next($this->array));
} }
public function valid() public function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->valid; return $this->valid;
@ -46,7 +46,7 @@ class Collection implements Iterator
class TestFilter extends FilterIterator class TestFilter extends FilterIterator
{ {
public function accept() public function accept(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
throw new Exception("Failure in Accept"); throw new Exception("Failure in Accept");

View file

@ -6,18 +6,18 @@ class BlaIterator implements Iterator
{ {
public function rewind(): void { } public function rewind(): void { }
public function next() { } public function next(): void { }
public function valid() { public function valid(): bool {
return true; return true;
} }
public function current() public function current(): mixed
{ {
throw new Exception('boo'); throw new Exception('boo');
} }
public function key() { } public function key(): mixed { return null; }
} }
$it = new BlaIterator(); $it = new BlaIterator();

View file

@ -24,7 +24,7 @@ test( function() {
echo "FilterIterator... "; echo "FilterIterator... ";
class FilterIteratorTest extends FilterIterator { class FilterIteratorTest extends FilterIterator {
function __construct(){} function __construct(){}
function accept(){} function accept(): bool {}
} }
test( function() { test( function() {
$o = new FilterIteratorTest; $o = new FilterIteratorTest;
@ -34,7 +34,7 @@ test( function() {
echo "RecursiveFilterIterator... "; echo "RecursiveFilterIterator... ";
class RecursiveFilterIteratorTest extends RecursiveFilterIterator { class RecursiveFilterIteratorTest extends RecursiveFilterIterator {
function __construct(){} function __construct(){}
function accept(){} function accept(): bool {}
} }
test( function() { test( function() {
$o = new RecursiveFilterIteratorTest; $o = new RecursiveFilterIteratorTest;

View file

@ -9,7 +9,7 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator {
function rewind(): void { function rewind(): void {
echo "dummy\n"; echo "dummy\n";
} }
function endChildren() { function endChildren(): void {
global $count; global $count;
echo $this->getDepth(); echo $this->getDepth();
if (--$count > 0) { if (--$count > 0) {

View file

@ -7,39 +7,39 @@ class foo implements \RecursiveIterator
{ {
public $foo = []; public $foo = [];
public Function current () public Function current(): mixed
{ {
return current ($this->foo); return current ($this->foo);
} }
public Function key () public Function key(): mixed
{ {
return key ($this->foo); return key ($this->foo);
} }
public Function next () public Function next(): void
{ {
next ($this->foo); next ($this->foo);
} }
public Function rewind () public Function rewind(): void
{ {
reset ($this->foo); reset ($this->foo);
} }
public Function valid () public Function valid(): bool
{ {
return current ($this->foo) !== false; return current ($this->foo) !== false;
} }
public Function getChildren () public Function getChildren(): ?RecursiveIterator
{ {
return current ($this->foo); 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 */ /* CRASH */
} }
public Function accept () public Function accept(): bool
{ {
return true; return true;
} }

View file

@ -19,22 +19,22 @@ class Container implements Iterator
$this->container->append($element); $this->container->append($element);
} }
public function current() public function current(): mixed
{ {
return $this->iterator->current(); return $this->iterator->current();
} }
public function next() public function next(): void
{ {
$this->iterator->next(); $this->iterator->next();
} }
public function key() public function key(): mixed
{ {
return $this->iterator->key(); return $this->iterator->key();
} }
public function valid() public function valid(): bool
{ {
return $this->iterator->valid(); return $this->iterator->valid();
} }

View file

@ -9,11 +9,11 @@ touch("$dir/file1");
touch("$dir/subdir/file2"); touch("$dir/subdir/file2");
class Filter1 extends RecursiveFilterIterator { class Filter1 extends RecursiveFilterIterator {
public function accept() { return $this->getInnerIterator()->getSubPathname() != ''; } public function accept(): bool { return $this->getInnerIterator()->getSubPathname() != ''; }
} }
class Filter2 extends RecursiveFilterIterator { 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 ); $iterator = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS );

View file

@ -20,26 +20,26 @@ class NumericArrayIterator implements Iterator
$this->i = 0; $this->i = 0;
} }
public function valid() public function valid(): bool
{ {
$ret = $this->i < count($this->a); $ret = $this->i < count($this->a);
echo __METHOD__ . '(' . ($ret ? 'true' : 'false') . ")\n"; echo __METHOD__ . '(' . ($ret ? 'true' : 'false') . ")\n";
return $ret; return $ret;
} }
public function key() public function key(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->i; return $this->i;
} }
public function current() public function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->a[$this->i]; return $this->a[$this->i];
} }
public function next() public function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->i++; $this->i++;
@ -54,7 +54,7 @@ class NumericArrayIterator implements Iterator
class SeekableNumericArrayIterator extends NumericArrayIterator implements SeekableIterator class SeekableNumericArrayIterator extends NumericArrayIterator implements SeekableIterator
{ {
public function seek($index) public function seek($index): void
{ {
if ($index < count($this->a)) { if ($index < count($this->a)) {
$this->i = $index; $this->i = $index;

View file

@ -35,7 +35,7 @@ class StudentIdFilter extends FilterIterator
$this->id = $other->getId(); $this->id = $other->getId();
} }
public function accept() public function accept(): bool
{ {
echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n"; echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n";
return $this->current()->getId() == $this->id; return $this->current()->getId() == $this->id;

View file

@ -20,26 +20,26 @@ class NumericArrayIterator implements Iterator
$this->i = 0; $this->i = 0;
} }
public function valid() public function valid(): bool
{ {
$ret = $this->i < count($this->a); $ret = $this->i < count($this->a);
echo __METHOD__ . '(' . ($ret ? 'true' : 'false') . ")\n"; echo __METHOD__ . '(' . ($ret ? 'true' : 'false') . ")\n";
return $ret; return $ret;
} }
public function key() public function key(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->i; return $this->i;
} }
public function current() public function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->a[$this->i]; return $this->a[$this->i];
} }
public function next() public function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->i++; $this->i++;
@ -48,7 +48,7 @@ class NumericArrayIterator implements Iterator
class SeekableNumericArrayIterator extends NumericArrayIterator implements SeekableIterator class SeekableNumericArrayIterator extends NumericArrayIterator implements SeekableIterator
{ {
public function seek($index) public function seek($index): void
{ {
if ($index < count($this->a)) { if ($index < count($this->a)) {
$this->i = $index; $this->i = $index;

View file

@ -39,22 +39,22 @@ class NoRewindIteratorEx extends NoRewindIterator
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::rewind(); parent::rewind();
} }
function valid() function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::valid(); return parent::valid();
} }
function current() function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::current(); return parent::current();
} }
function key() function key(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::key(); return parent::key();
} }
function next() function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::next(); parent::next();

View file

@ -5,27 +5,27 @@ SPL: EmptyIterator
class EmptyIteratorEx extends EmptyIterator class EmptyIteratorEx extends EmptyIterator
{ {
function rewind() function rewind(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::rewind(); parent::rewind();
} }
function valid() function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::valid(); return parent::valid();
} }
function current() function current(): never
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::current(); parent::current();
} }
function key() function key(): never
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::key(); parent::key();
} }
function next() function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::next(); parent::next();

View file

@ -27,42 +27,42 @@ class MyRecursiveArrayIterator extends RecursiveArrayIterator
class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
{ {
function rewind() function rewind(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::rewind(); parent::rewind();
} }
function valid() function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::valid(); return parent::valid();
} }
function current() function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::current(); return parent::current();
} }
function key() function key(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::key(); return parent::key();
} }
function next() function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::next(); parent::next();
} }
function beginChildren() function beginChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }
function endChildren() function endChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }

View file

@ -5,21 +5,21 @@ SPL: RecursiveIteratorIterator and beginChildren/endChildren
class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
{ {
function rewind() function rewind(): void
{ {
echo "<ul>\n"; echo "<ul>\n";
parent::rewind(); parent::rewind();
} }
function beginChildren() function beginChildren(): void
{ {
echo str_repeat(' ',$this->getDepth())."<ul>\n"; echo str_repeat(' ',$this->getDepth())."<ul>\n";
} }
function endChildren() function endChildren(): void
{ {
echo str_repeat(' ',$this->getDepth())."</ul>\n"; echo str_repeat(' ',$this->getDepth())."</ul>\n";
} }
function valid() function valid(): bool
{ {
if (!parent::valid()) { if (!parent::valid()) {
echo "<ul>\n"; echo "<ul>\n";

View file

@ -18,21 +18,21 @@ class MenuOutput extends RecursiveIteratorIterator
{ {
parent::__construct($it); parent::__construct($it);
} }
function rewind() function rewind(): void
{ {
echo "<ul>\n"; echo "<ul>\n";
parent::rewind(); parent::rewind();
} }
function beginChildren() function beginChildren(): void
{ {
echo str_repeat(' ',$this->getDepth())."<ul>\n"; echo str_repeat(' ',$this->getDepth())."<ul>\n";
} }
function endChildren() function endChildren(): void
{ {
echo str_repeat(' ',$this->getDepth())."</ul>\n"; echo str_repeat(' ',$this->getDepth())."</ul>\n";
} }
function valid() function valid(): bool
{ {
if (!parent::valid()) { if (!parent::valid()) {
echo "<ul>\n"; echo "<ul>\n";

View file

@ -37,14 +37,14 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
parent::__construct($it); parent::__construct($it);
} }
function rewind() function rewind(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->skip = false; $this->skip = false;
parent::rewind(); parent::rewind();
} }
function valid() function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
if ($this->skip) if ($this->skip)
@ -55,25 +55,25 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return parent::valid(); return parent::valid();
} }
function current() function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::current(); return parent::current();
} }
function key() function key(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::key(); return parent::key();
} }
function next() function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::next(); parent::next();
} }
function callHasChildren() function callHasChildren(): bool
{ {
$this->skip = false; $this->skip = false;
$has = parent::callHasChildren(); $has = parent::callHasChildren();
@ -89,12 +89,12 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return $res; return $res;
} }
function beginChildren() function beginChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }
function endChildren() function endChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }

View file

@ -37,7 +37,7 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
parent::__construct($it); parent::__construct($it);
} }
function rewind() function rewind(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->skip = false; $this->skip = false;
@ -55,25 +55,25 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return parent::valid(); return parent::valid();
} }
function current() function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::current(); return parent::current();
} }
function key() function key(): int
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::key(); return parent::key();
} }
function next() function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::next(); parent::next();
} }
function callHasChildren() function callHasChildren(): bool
{ {
$this->skip = false; $this->skip = false;
$has = parent::callHasChildren(); $has = parent::callHasChildren();
@ -89,7 +89,7 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return $res; return $res;
} }
function callGetChildren() function callGetChildren(): ?MyRecursiveArrayIterator
{ {
if ($this->over == 2) if ($this->over == 2)
{ {
@ -100,12 +100,12 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return new MyRecursiveArrayIterator($this->current()); return new MyRecursiveArrayIterator($this->current());
} }
function beginChildren() function beginChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }
function endChildren() function endChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }

View file

@ -37,14 +37,14 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
parent::__construct($it, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD); parent::__construct($it, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD);
} }
function rewind() function rewind(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->skip = false; $this->skip = false;
parent::rewind(); parent::rewind();
} }
function valid() function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
if ($this->skip) if ($this->skip)
@ -55,25 +55,25 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return parent::valid(); return parent::valid();
} }
function current() function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::current(); return parent::current();
} }
function key() function key(): int
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::key(); return parent::key();
} }
function next() function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::next(); parent::next();
} }
function callHasChildren() function callHasChildren(): bool
{ {
$this->skip = false; $this->skip = false;
$has = parent::callHasChildren(); $has = parent::callHasChildren();
@ -89,7 +89,7 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return $res; return $res;
} }
function callGetChildren() function callGetChildren(): MyRecursiveArrayIterator
{ {
if ($this->over == 2) if ($this->over == 2)
{ {
@ -100,12 +100,12 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return new MyRecursiveArrayIterator($this->current()); return new MyRecursiveArrayIterator($this->current());
} }
function beginChildren() function beginChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }
function endChildren() function endChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
} }

View file

@ -5,12 +5,12 @@ SPL: RecursiveIteratorIterator and begin/endIteration()
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator class MyRecursiveIteratorIterator extends RecursiveIteratorIterator
{ {
function beginIteration() function beginIteration(): void
{ {
echo __METHOD__ . "()\n"; echo __METHOD__ . "()\n";
} }
function endIteration() function endIteration(): void
{ {
echo __METHOD__ . "()\n"; echo __METHOD__ . "()\n";
} }

View file

@ -26,19 +26,19 @@ class MyAppendIterator extends AppendIterator
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
} }
function rewind() function rewind(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::rewind(); parent::rewind();
} }
function valid() function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return parent::valid(); return parent::valid();
} }
function append(Iterator $what) function append(Iterator $what): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
parent::append($what); parent::append($what);

View file

@ -42,38 +42,38 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
parent::__construct($it); parent::__construct($it);
} }
function rewind() function rewind(): void
{ {
echo __METHOD__ . "() - BEGIN\n"; echo __METHOD__ . "() - BEGIN\n";
parent::rewind(); parent::rewind();
echo __METHOD__ . "() - DONE\n"; echo __METHOD__ . "() - DONE\n";
} }
function valid() function valid(): bool
{ {
echo __METHOD__ . "()\n"; echo __METHOD__ . "()\n";
return parent::valid(); return parent::valid();
} }
function current() function current(): mixed
{ {
echo __METHOD__ . "()\n"; echo __METHOD__ . "()\n";
return parent::current(); return parent::current();
} }
function key() function key(): int
{ {
echo __METHOD__ . "()\n"; echo __METHOD__ . "()\n";
return parent::key(); return parent::key();
} }
function next() function next(): void
{ {
echo __METHOD__ . "()\n"; echo __METHOD__ . "()\n";
parent::next(); parent::next();
} }
function callHasChildren() function callHasChildren(): bool
{ {
$has = parent::callHasChildren(); $has = parent::callHasChildren();
$res = $this->getDepth() < $this->max_depth && $has; $res = $this->getDepth() < $this->max_depth && $has;
@ -81,13 +81,13 @@ class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
return $res; return $res;
} }
function beginChildren() function beginChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
parent::beginChildren(); parent::beginChildren();
} }
function endChildren() function endChildren(): void
{ {
echo __METHOD__ . "(".$this->getDepth().")\n"; echo __METHOD__ . "(".$this->getDepth().")\n";
parent::endChildren(); parent::endChildren();

View file

@ -14,31 +14,31 @@ class NumericArrayIterator implements Iterator
$this->a = $a; $this->a = $a;
} }
public function valid() public function valid(): bool
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->i < count($this->a); return $this->i < count($this->a);
} }
public function rewind() public function rewind(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->i = 0; $this->i = 0;
} }
public function key() public function key(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->i; return $this->i;
} }
public function current() public function current(): mixed
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
return $this->a[$this->i]; return $this->a[$this->i];
} }
public function next() public function next(): void
{ {
echo __METHOD__ . "\n"; echo __METHOD__ . "\n";
$this->i++; $this->i++;

View file

@ -5,7 +5,7 @@ SPL: RecursiveFilterIterator
class MyRecursiveFilterIterator extends RecursiveFilterIterator class MyRecursiveFilterIterator extends RecursiveFilterIterator
{ {
function accept() function accept(): bool
{ {
return true; return true;
} }

View file

@ -23,7 +23,7 @@ class MyRegexIterator extends RegexIterator
} }
} }
function accept() function accept(): bool
{ {
@preg_match_all($this->re, (string)($this->uk ? $this->key() : $this->current()), $sub); @preg_match_all($this->re, (string)($this->uk ? $this->key() : $this->current()), $sub);
$ret = parent::accept(); $ret = parent::accept();

View file

@ -23,7 +23,7 @@ class MyRegexIterator extends RegexIterator
} }
} }
function accept() function accept(): bool
{ {
@preg_match_all($this->re, (string)($this->uk ? $this->key() : $this->current()), $sub); @preg_match_all($this->re, (string)($this->uk ? $this->key() : $this->current()), $sub);
$ret = parent::accept(); $ret = parent::accept();

View file

@ -6,7 +6,7 @@ Sebastian Schürmann
<?php <?php
class myFilterIterator extends FilterIterator { class myFilterIterator extends FilterIterator {
function accept() { } function accept(): bool { }
} }
class myCachingIterator extends CachingIterator { } class myCachingIterator extends CachingIterator { }

View file

@ -6,11 +6,11 @@ Sebastian Schürmann
<?php <?php
class myIterator implements Iterator { class myIterator implements Iterator {
function current() {} function current(): mixed {}
function next() {} function next(): void {}
function key() {} function key(): mixed {}
function valid() {} function valid(): bool {}
function rewind() {} function rewind(): void {}
} }
try { try {

View file

@ -7,11 +7,11 @@ class Test implements Iterator {
function foo() { function foo() {
echo __METHOD__ . "()\n"; echo __METHOD__ . "()\n";
} }
function rewind() {} function rewind(): void {}
function valid() {} function valid(): bool {}
function current() {} function current(): mixed {}
function key() {} function key(): mixed {}
function next() {} function next(): void {}
} }
class TestIteratorIterator extends IteratorIterator { class TestIteratorIterator extends IteratorIterator {

View file

@ -10,7 +10,7 @@ $recArrIt = new RecursiveArrayIterator($arrOb->getIterator());
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { class MyRecursiveIteratorIterator extends RecursiveIteratorIterator {
function nextelement() { function nextelement(): void {
echo __METHOD__."\n"; echo __METHOD__."\n";
} }
} }

View file

@ -10,7 +10,7 @@ $recArrIt = new RecursiveArrayIterator($arrOb->getIterator());
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { class MyRecursiveIteratorIterator extends RecursiveIteratorIterator {
function beginchildren() { function beginchildren(): void {
throw new Exception; throw new Exception;
} }
} }

View file

@ -10,7 +10,7 @@ $recArrIt = new RecursiveArrayIterator($arrOb->getIterator());
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { class MyRecursiveIteratorIterator extends RecursiveIteratorIterator {
function callHasChildren() { function callHasChildren(): bool {
throw new Exception; throw new Exception;
} }
} }

View file

@ -10,7 +10,7 @@ $recArrIt = new RecursiveArrayIterator($arrOb->getIterator());
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { class MyRecursiveIteratorIterator extends RecursiveIteratorIterator {
function endchildren() { function endchildren(): void {
throw new Exception; throw new Exception;
} }
} }

View file

@ -10,7 +10,7 @@ $recArrIt = new RecursiveArrayIterator($arrOb->getIterator());
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { class MyRecursiveIteratorIterator extends RecursiveIteratorIterator {
function nextelement() { function nextelement(): void {
throw new Exception; throw new Exception;
} }
} }

View file

@ -34,7 +34,7 @@ class RecursiveCompareDualIterator extends RecursiveIteratorIterator
/** Rewind iteration and comparison process. Starting with $equal = true. /** Rewind iteration and comparison process. Starting with $equal = true.
*/ */
function rewind() function rewind(): void
{ {
$this->equal = true; $this->equal = true;
parent::rewind(); parent::rewind();
@ -43,7 +43,7 @@ class RecursiveCompareDualIterator extends RecursiveIteratorIterator
/** Calculate $equal /** Calculate $equal
* @see $equal * @see $equal
*/ */
function endChildren() function endChildren(): void
{ {
$this->equal &= !$this->getInnerIterator()->getLHS()->valid() $this->equal &= !$this->getInnerIterator()->getLHS()->valid()
&& !$this->getInnerIterator()->getRHS()->valid(); && !$this->getInnerIterator()->getRHS()->valid();

View file

@ -14,7 +14,7 @@ foreach ($iterator as $element) {
} }
class SkipsFirstElementRecursiveIteratorIterator extends RecursiveIteratorIterator { class SkipsFirstElementRecursiveIteratorIterator extends RecursiveIteratorIterator {
public function beginIteration() { public function beginIteration(): void {
echo "::beginIteration() was invoked\n"; echo "::beginIteration() was invoked\n";
$this->next(); $this->next();
} }

View file

@ -14,7 +14,7 @@ foreach ($iterator as $element) {
} }
class EndIterationRecursiveIteratorIterator extends RecursiveIteratorIterator { class EndIterationRecursiveIteratorIterator extends RecursiveIteratorIterator {
public function endIteration() { public function endIteration(): void {
echo "::endIteration() was invoked\n"; echo "::endIteration() was invoked\n";
} }
} }

View file

@ -14,7 +14,7 @@ foreach ($iterator as $element) {
} }
class NextElementRecursiveIteratorIterator extends RecursiveIteratorIterator { class NextElementRecursiveIteratorIterator extends RecursiveIteratorIterator {
public function nextElement() { public function nextElement(): void {
echo "::nextElement() was invoked\n"; echo "::nextElement() was invoked\n";
} }
} }