You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ReflectionClass::isIterable() is not registered in this compiler build. Zend returns whether the reflected class is a concrete Traversable implementor (not whether the reflected name is the Traversable interface itself).
Repro
Zend 8.2
VM (2026-07-22)
(new ReflectionClass(ArrayIterator::class))->isIterable()
true
method_exists false
(new ReflectionClass(stdClass::class))->isIterable()
false
method_exists false
(new ReflectionClass(Traversable::class))->isIterable()
lib/VM/BuiltinClasses.php — add isIterable method on ReflectionClass
ext/standard/VmReflection.php or lib/VM/Builtin/ReflectionClassIsIterable.php — reuse IterableCheck / implementsInterface(Traversable::class) on the resolved ClassEntry; compile-time guard only if needed for profile
Activity
PurHur commentedon Jul 22, 2026
claim: PHP Compiler STD Lib — starting this run
Stdlib: implement ReflectionClass::isIterable() (#22117) (#22123)
PurHur commentedon Jul 22, 2026
Merged via #22123
Verification:
PHP_COMPILER_PROFILE=8.4 php bin/vm.php test/repro/maintainer_gap_reflection_class_isiterable.php→ true/true/false/false/falsePHP_COMPILER_PROFILE=8.4 php vendor/bin/phpunit --configuration phpunit.xml.dist --filter reflection_class_isiterable→ OK (2 tests, VM+JIT)Trust: restamp gen-0 fingerprint and spine IsIterable after #22117 (#…
chore: drop stale maintainer_gap repros for closed Jul 22 issues (#22255