Part A — parity issues filed (4)
| Issue |
Summary |
| #32204 |
Language: catch (Exception $this) compiles and runs — Zend "Cannot re-assign $this" (zend_compile.c) |
| #32205 |
Language: foreach ($a as &$this) compiles and runs — Zend "Cannot re-assign $this" (zend_compile.c) |
| #32206 |
Language: class true / interface true / trait never (and false/null/mixed/never/void/iterable) compile — Zend "Cannot use '…' as class name as it is reserved" (zend_compile.c) |
| #32207 |
Language: continue 2 / break 2 over-deep leak php-parser Stmt_Continue/Stmt_Break — Zend "Cannot 'continue' 2 levels" (re-#32155, zend_compile.c) |
All labeled implementation-ready. #32204–#32207 are language IR (worker lanes skipping SOAP/DOM/LDAP/Reflection can claim).
Repros: test/repro/maintainer_gap_catch_this.php, maintainer_gap_foreach_byref_this.php, maintainer_gap_reserved_class_true.php, maintainer_gap_continue_overdeep.php, maintainer_gap_break_overdeep.php.
Siblings of #4865 ($this = …) and #32155 (continue 0). foreach ($a as $this) (value form) already fatals; only the by-ref form was silent.
Nearby not filed as a fifth:
extract(['this' => 1]) in a method reassigns $this then TypeErrors in get_class($this) — Zend catchable Cannot re-assign $this (ext/standard/array.c). Stdlib-adjacent; file separately if lanes want it.
$$name = 1 with $name = 'this' Errors "Using $this when not in object context" — Zend "Cannot re-assign $this" (runtime Error, not compile fatal).
Part B — PR triage
Queue health
Verification (maintainer)
Probed Zend 8.2.32 vs php bin/vm.php / php bin/jit.php via ./script/docker-exec.sh @ af5eba395e.
Did not run release-readiness.sh, compliance shards, or bootstrap link.
Part A — parity issues filed (4)
catch (Exception $this)compiles and runs — Zend "Cannot re-assign $this" (zend_compile.c)foreach ($a as &$this)compiles and runs — Zend "Cannot re-assign $this" (zend_compile.c)class true/interface true/trait never(andfalse/null/mixed/never/void/iterable) compile — Zend "Cannot use '…' as class name as it is reserved" (zend_compile.c)continue 2/break 2over-deep leak php-parserStmt_Continue/Stmt_Break— Zend "Cannot 'continue' 2 levels" (re-#32155,zend_compile.c)All labeled
implementation-ready. #32204–#32207 are language IR (worker lanes skipping SOAP/DOM/LDAP/Reflection can claim).Repros:
test/repro/maintainer_gap_catch_this.php,maintainer_gap_foreach_byref_this.php,maintainer_gap_reserved_class_true.php,maintainer_gap_continue_overdeep.php,maintainer_gap_break_overdeep.php.Siblings of #4865 (
$this = …) and #32155 (continue 0).foreach ($a as $this)(value form) already fatals; only the by-ref form was silent.Nearby not filed as a fifth:
extract(['this' => 1])in a method reassigns$thisthen TypeErrors inget_class($this)— Zend catchableCannot re-assign $this(ext/standard/array.c). Stdlib-adjacent; file separately if lanes want it.$$name = 1with$name = 'this'Errors "Using $this when not in object context" — Zend "Cannot re-assign $this" (runtime Error, not compile fatal).Part B — PR triage
Closes #; left for explicit merge.Closes #.ldap_count_entriesJIT) claimed this run by stdlib lane — leave.$this, reserved class-like names, plus the Language: continue 0 leaks php-parser Stmt_Continue — Zend "accepts only positive integers" (Zend/zend_compile.c) #32155 over-deep diagnostic leak.Queue health
Stmt_*/Unimplemented Node Value Typeinstead of Zend's over-deep / positive-integer fatals.Verification (maintainer)
Probed Zend 8.2.32 vs
php bin/vm.php/php bin/jit.phpvia./script/docker-exec.sh@af5eba395e.$thisre-assign; VM/JIT printaccepted.$thisre-assign; VM/JIT printaccepted. Value-formforeach as $thisalready fatals on VM.acceptedfortrue/false/null/mixed/never/void/iterableandinterface true/trait never.Cannot 'continue' 2 levels/Cannot 'break' 2 levels; VM/JITToo high of a count for Stmt_Continue/Stmt_Break.continue 1.5→ Zend positive-integer fatal; VM/JITUnimplemented Node Value Type.Did not run
release-readiness.sh, compliance shards, or bootstrap link.