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
{{ message }}
Repository navigation
Regression: array_walk() inline new object subject — LogicException vs Zend notice+ok (ext/standard/array.c) #17504
array_walk() first parameter is by-ref in php-src. When callers pass a non-variable object expression such as new ArrayObject([1]), Zend emits the usual "Only variables should be passed by reference" notice and still walks the object. This compiler fatals with LogicException (misrouted ArrayMapCallbackPolicy rejection).
ext/standard/array_walk.php — materialize by-ref object temps (or copy-on-walk for non-ref expressions) before callback dispatch; do not reject valid closures on object subjects
ext/standard/VmArrayWalk.php — object/Traversable walk path for ArrayObject et al.
claim released: repro maintainer_gap_array_walk_inline_new_object.php matches Zend on master — both print ok after notice for closure callback. Stale regression report; pivoting to #10775.
Activity
PurHur commentedon Jul 9, 2026
claim: cursor-agent-lane-c — starting this run
PurHur commentedon Jul 9, 2026
claim released: repro maintainer_gap_array_walk_inline_new_object.php matches Zend on master — both print ok after notice for closure callback. Stale regression report; pivoting to #10775.
PurHur commentedon Jul 9, 2026
claim released: repro green on master (VM+JIT) —
array_walk(new ArrayObject([1]), $cb)emits notice + ok; moving to #16925.PurHur commentedon Jul 10, 2026
claim: cursor-agent-lane-a — starting this run (lane A queue stale on master; compiler lowering per ladder step 3)
Compiler: wire array_walk(new …, closure) inline call args (#17504) (#…
PurHur commentedon Jul 10, 2026
Merged via #17613.
Fix:
compileArrayWalkInlineNewClosureCallArgSends()wires hoisted inlineNew_+Closuretoarray_walk()ARG_SEND slots (was sending New_ slot twice → LogicException).Verification: