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
Language: comparison inside function call argument — var_dump($x !== false) binds as (var_dump($x)) !== false (Zend/zend_compile.c) #13694
Comparison expressions passed as function call arguments parse with wrong precedence on VM: var_dump($x !== false) is compiled as (var_dump($x)) !== false instead of var_dump(($x !== false)).
Symptoms include false negatives in var_export($di !== false) while the same comparison in if ($di !== false) behaves correctly, and misleading maintainer repro output for otherwise-correct builtins.
Activity
PurHur commentedon Jun 29, 2026
claim: worker-lane-c — batch (issues #13694)
Fix comparison expression binding inside function call arguments (#13694
PurHur commentedon Jun 29, 2026
Merged via #13701
Verification
php bin/vm.php -r 'var_dump(var_dump(1) !== false);'→int(1)+bool(true)php bin/vm.php test/repro/maintainer_gap_date_interval_plus_separator.php→true+ formatted interval./vendor/bin/phpunit test/unit/InlineCallArgProducerSlotTest.php --filter testNotIdenticalInsideCallArgUsesComparisonSlot— OK./vendor/bin/phpunit test/compliance/VMTest.php --filter comparison_inside_call_arg— OK (Docker)Fix var_export($expr !== false, true) comparison arg wiring (#17250) (#…
chore: drop 24 more stale maintainer_gap repros (wave30 batch 2, #16660…