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: getimagesize()/md5_file()/sha1_file() null under strict_types — ValueError not TypeError (ext/standard/image.c, ext/standard/md5.c) #17060
Under declare(strict_types=1), Zend rejects null path/filename operands with TypeError. This compiler raises ValueError with message Path cannot be empty (via shared path-string guards) instead of the Zend TypeError wording.
ext/standard/getimagesize.php, ext/standard/md5.php / hash-file helpers — use VmString::coerceStringBuiltinArg / shared path-arg guard that throws TypeError on null under strict, not ValueError for empty path
lib/JIT/Builtin/ counterparts if JIT lowers these builtins directly
php bin/vm.php test/repro/maintainer_gap_md5_file_null_strict.php — TypeError for md5_file + sha1_file
./vendor/bin/phpunit --filter path_null_strict_typeerror test/compliance/VMTest.php test/compliance/JITTest.php — OK (2 tests)
Non-strict null still ValueError (hash_file_empty_path compliance green)
Implementation:VmStreamPath::coerceNonEmptyPathArgForFrame, JitStreamPath::lowerPath in non-empty guard, VmFilestatArg::coerceFilenameArg with frame for md5/sha1.
Activity
PurHur commentedon Jul 7, 2026
claim: cursor-agent-lane-c — starting this run
Fix strict_types null path args: TypeError not ValueError (#17060) (#…
PurHur commentedon Jul 7, 2026
Merged via #17070
Verification:
php bin/vm.php test/repro/maintainer_gap_getimagesize_null_strict.php— TypeError (not ValueError)php bin/vm.php test/repro/maintainer_gap_md5_file_null_strict.php— TypeError for md5_file + sha1_file./vendor/bin/phpunit --filter path_null_strict_typeerror test/compliance/VMTest.php test/compliance/JITTest.php— OK (2 tests)hash_file_empty_pathcompliance green)Implementation:
VmStreamPath::coerceNonEmptyPathArgForFrame,JitStreamPath::lowerPathin non-empty guard,VmFilestatArg::coerceFilenameArgwith frame for md5/sha1.Stdlib: getimagesize(null) ValueError not TypeError without strict_ty…