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
Closed #4956 regressed: parenthesized DNF parameter types combining an intersection arm with a class arm — (I1&I2)|C $x — fail at compile time with Unknown Op\Type provided: PHPCfg\Op\Type\Intersection.
Capability matrix marks DNF types as VM/JIT/AOT yes (#3094), and compliance types/dnf_param_intersection_class.phpt is red.
php-src reference
Zend/zend_compile.c — zend_compile_type() / DNF type arms
lib/DnfType.php, lib/Compiler.php — TypeReconstructor / resolveOpType for Union_ + Intersection
The (I1&I2)|C DNF parameter compile path was already fixed in #6391 (#4956). This PR adds the maintainer repro script and PHPUnit unit guard from the issue spec so the regression stays locked.
Verification (all green):
php test/repro-maintainer/parity_dnf_param_intersection_class_regression.php → C
vendor/bin/phpunit --filter dnf_param_intersection → OK (4 tests, VM + JIT compliance)
vendor/bin/phpunit test/unit/DnfParamIntersectionClassRegressionTest.php → OK (2 tests)
Activity
PurHur commentedon Jun 6, 2026
claim: worker-lane-c — starting this run
PurHur commentedon Jun 6, 2026
Merged via #6782.
The
(I1&I2)|CDNF parameter compile path was already fixed in #6391 (#4956). This PR adds the maintainer repro script and PHPUnit unit guard from the issue spec so the regression stays locked.Verification (all green):
php test/repro-maintainer/parity_dnf_param_intersection_class_regression.php→Cvendor/bin/phpunit --filter dnf_param_intersection→ OK (4 tests, VM + JIT compliance)vendor/bin/phpunit test/unit/DnfParamIntersectionClassRegressionTest.php→ OK (2 tests)