Skip to content

AOT: enum-as-const, variable static call, interface self::, static array prop (#31967) - #32011

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-31967-aot-const-static
Aug 18, 2026
Merged

AOT: enum-as-const, variable static call, interface self::, static array prop (#31967)#32011
PurHur merged 1 commit into
masterfrom
agent/issue-31967-aot-const-static

Conversation

@PurHur

@PurHur PurHur commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

php-src references: Zend/zend_enum.c, zend_execute.c (ZEND_INIT_STATIC_METHOD_CALL), zend_inheritance.c, zend_compile.c (static prop defaults).

Verification

./script/phpunit.sh --filter Issue31967AotConstStaticTest
# OK (4 tests)

./script/aot-smoke.sh
# aot-smoke: 8 passed, 0 failed

./script/docker-exec.sh -- bash -lc '
php bin/compile.php -o /tmp/e test/repro/issue_31967_enum_class_const.php && /tmp/e
php bin/compile.php -o /tmp/a test/repro/issue_31967_static_prop_array.php && /tmp/a
php bin/compile.php -o /tmp/v test/repro/issue_31967_variable_static_call.php && /tmp/v
php bin/compile.php -o /tmp/i test/repro/issue_31967_interface_self_const.php && /tmp/i
'
# h / 1 / U / 20

Not covered: full ./script/ci-local.sh; ClassConstEnumCaseJitCompileTest still fails module verify in isolation though the same int-backed enum snippet compiles and runs via bin/compile.php (pre-existing jitCompileBlock→compileCommon test harness gap).

Closes #31967

Made with Cursor

…ray prop (#31967)

Finish remaining #31967 lowering after numeric-string/NAN merge (#31981): enum case
class constants, $obj::method(), interface self:: in const expr, and non-empty array
static property defaults. Fix #31989 strtol ensureStrtolDecl() parse regression that
blocked all AOT compiles.

php-src: Zend/zend_enum.c, zend_execute.c (INIT_STATIC_METHOD_CALL),
zend_inheritance.c, zend_compile.c (static prop defaults).

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

AOT: unimplemented lowering — numeric-string arithmetic, NAN spaceship, enum-as-const, variable static call, self:: interface const

1 participant