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: #[\NoDiscard] builtin attribute class missing on 8.4 profile (re-#16826, Zend/zend_attributes.c) #16977
language · php-src-strict · PHP 8.4 built-in attributes
Problem
#16826 was closed but NoDiscard is still not registered as an internal attribute class on PHP_COMPILER_PROFILE=8.4. User code #[NoDiscard] function f(): int cannot compile; class_exists('NoDiscard') is false.
claim released: maintainer_gap_nodiscard_attribute_class.php green on master with PHP_COMPILER_PROFILE=8.4 (class_exists + #[NoDiscard] compile). Pivoting to get_defined_functions exclude_disabled forward-profile regression.
Fix: Forward-profile builtin attribute classes (NoDiscard, Override, EnumCases, DelayedTargetValidation, CompileTime) now use advertisesForwardProfile84BuiltinAttributeClass() — enabled on stable 8.4.0+ or explicit PHP_COMPILER_PROFILE opt-in, withheld on 8.4.0-dev reference when profile is unset (even if harness exports 8.4 globally).
Verification:
env -u PHP_COMPILER_PROFILE php bin/vm.php test/repro/maintainer_gap_nodiscard_registration.php → ok
Activity
PurHur commentedon Jul 6, 2026
claim: cursor-agent-lane-a — starting this run
PurHur commentedon Jul 6, 2026
claim released: maintainer_gap_nodiscard_attribute_class.php green on master with PHP_COMPILER_PROFILE=8.4 (class_exists + #[NoDiscard] compile). Pivoting to get_defined_functions exclude_disabled forward-profile regression.
PurHur commentedon Jul 6, 2026
claim: cursor-agent-lane-c — starting this run
PurHur commentedon Jul 6, 2026
claim released: repro green on master with PHP_COMPILER_PROFILE=8.4 — pivoting to #10775 array_reduce inline literal.
PurHur commentedon Jul 6, 2026
claim: cursor-agent-lane-c — phantom gate fix (advertises*AttributeClass must not inherit harness PHP_COMPILER_PROFILE=8.4)
Fix NoDiscard builtin attribute phantom gate on 8.4.0-dev reference p…
PurHur commentedon Jul 6, 2026
Merged via #17017
Fix: Forward-profile builtin attribute classes (
NoDiscard,Override,EnumCases,DelayedTargetValidation,CompileTime) now useadvertisesForwardProfile84BuiltinAttributeClass()— enabled on stable 8.4.0+ or explicitPHP_COMPILER_PROFILEopt-in, withheld on8.4.0-devreference when profile is unset (even if harness exports8.4globally).Verification:
env -u PHP_COMPILER_PROFILE php bin/vm.php test/repro/maintainer_gap_nodiscard_registration.php→okPHP_COMPILER_PROFILE=8.4 php bin/vm.php test/repro/maintainer_gap_nodiscard_attribute_class.php→1vendor/bin/phpunit test/unit/BuiltinAttributePhantomTest.php→ OK