Skip to content

Fix AOT void method include with typed array property locals (#776)#793

Merged
PurHur merged 1 commit into
masterfrom
fix/issue-776-void-method-include-array-property
May 23, 2026
Merged

Fix AOT void method include with typed array property locals (#776)#793
PurHur merged 1 commit into
masterfrom
fix/issue-776-void-method-include-array-property

Conversation

@PurHur
Copy link
Copy Markdown
Owner

@PurHur PurHur commented May 23, 2026

Summary

  • Fix IncludeHelper so literal includes in void methods receive caller locals from typed array property fetches ($this->config['app_name']) by materializing __value__ strings into callee __string__* allocas hoisted in the include entry block, branching from the binding tail into the inlined body, and resolving names across nested include scopes.
  • Branch from the binding tail into the include body (fixes unreachable inlined template when copyFromPointer terminates the entry block early).
  • Box __string__* actual arguments as __value__ for native calls such as header() (Native.php / Native.pre).
  • Add method_include_void_array_property AOT PHPT (Router-shaped render() + layout include).

Test plan

Closes #776

Made with Cursor

…es (#776).

Wire include callee locals from caller VALUE boxes into dedicated string
allocas, branch from the binding tail into the inlined body, and resolve
caller names across nested include scopes. Add method_include_void_array_property
PHPT and box native strings for __value__ native calls (header).

Fixes Router render* pattern where config['app_name'] must reach template
includes; full 003-MiniWebApp layout still needs nested superglobal follow-up.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur PurHur merged commit f21e37d into master May 23, 2026
@PurHur PurHur deleted the fix/issue-776-void-method-include-array-property branch May 23, 2026 03:32
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: Router render* void methods — template include must emit stdout (#764)

1 participant