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: child can override final plain property on PROFILE=8.4 (re-#22339, Zend/zend_inheritance.c) #22988
PHP 8.4 final plain properties must not be redeclared on a child. #22339 was closed as fixed via FinalPropertyOverrideCheck, but on current master under PHP_COMPILER_PROFILE=8.4 a child can override a final public property (file compile and eval).
Verified 2026-07-25:
Repro
Zend 8.4+
VM (2026-07-25)
class A { final public string $x = 'a'; } class B extends A { public string $x = 'b'; }
Root cause: same-script FinalPropertyOverrideCheck was green, but separate eval() inheritance never consulted parent propertyFinal in inheritFromParent.
Fix: reject in VM::inheritFromParent with Zend message Cannot override final property %s::$%s (same shape as final class-const #22329).
Activity
PurHur commentedon Jul 25, 2026
claim: Lane C worker — starting this run
PurHur commentedon Jul 25, 2026
Merged #23002
Root cause: same-script
FinalPropertyOverrideCheckwas green, but separateeval()inheritance never consulted parentpropertyFinalininheritFromParent.Fix: reject in
VM::inheritFromParentwith Zend messageCannot override final property %s::$%s(same shape as final class-const #22329).Verification:
Language: reject final plain property override across eval (#22988) (#…