Skip to content

Language: list destructuring from string — TypeError (#7461) - #7476

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-7461-list-destructure-string-typeerror
Jun 7, 2026
Merged

PurHur merged 1 commit into
masterfrom
agent/issue-7461-list-destructure-string-typeerror

Conversation

@PurHur

@PurHur PurHur commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

php-src reference

Zend/zend_execute.c — zend_fetch_dimension_address_read() is_list branch (PHP 8.4+ warns; issue requires catchable TypeError for string RHS).

Verification

./script/docker-exec.sh -- php bin/vm.php test/repro-maintainer/list_destructure_string.php
# TypeError: Cannot use string as array

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php vendor/bin/phpunit --filter list_destructure_string'
# OK (2 tests, 2 assertions)

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php vendor/bin/phpunit test/unit/ListDestructStringTest.php test/unit/ListDestructNullTest.php'
# OK (2 tests) — string TypeError; null/false/int still NULL

Closes #7461

Made with Cursor

VM TYPE_LIST_UNPACK_CHECK and JIT ListUnpackHelper now reject string
operands with zend_execute.c-style message instead of silently binding
null slots; null/int/bool/float RHS behavior unchanged (#4325).

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit b63b73b into master Jun 7, 2026
@PurHur
PurHur deleted the agent/issue-7461-list-destructure-string-typeerror branch June 7, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Language: list/array destructuring from string — must TypeError not null slots (zend_execute.c)

1 participant