Skip to content

Language: late static binding (static::method / static::class) (#1231) - #1345

Merged
PurHur merged 1 commit into
masterfrom
issue-1231-late-static-binding
May 24, 2026
Merged

PurHur merged 1 commit into
masterfrom
issue-1231-late-static-binding

Conversation

@PurHur

@PurHur PurHur commented May 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Implement VM TYPE_STATICCALL_INIT and propagate calledClass on frames for late static resolution (static:: vs self::).
  • Teach JIT/AOT to resolve static:: scope (method calls, ::class, static properties) instead of treating static as a literal class name.
  • Add compliance + AOT PHPT fixtures and capability-syntax matrix row.

Test plan

  • ./script/docker-ci-local.sh fast --filter late_static_binding
  • VM/JIT/AOT late_static_binding PHPT (via PHPUnit in Docker)

Closes #1231

Made with Cursor

…1231)

Implement VM TYPE_STATICCALL_INIT, propagate called-class on frames for
late static resolution, and teach JIT/AOT to resolve static:: scope instead
of treating it as a literal class name.

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.

Language: late static binding (static::method())

1 participant