Skip to content

fix: resolve names inside named-argument values (missing NamedArg resolver arm)#471

Merged
nahime0 merged 3 commits into
illegalstudio:mainfrom
chadmandoo:upstream-pr/named-arg-resolution
Jul 7, 2026
Merged

fix: resolve names inside named-argument values (missing NamedArg resolver arm)#471
nahime0 merged 3 commits into
illegalstudio:mainfrom
chadmandoo:upstream-pr/named-arg-resolution

Conversation

@chadmandoo

Copy link
Copy Markdown
Contributor

new self(label: $name, url: new Url('/')) failed "Undefined class: Url": the name resolver's expression walk had no ExprKind::NamedArg arm, so a named argument's VALUE expression fell through the default clone and escaped rewriting entirely — any imported alias (or namespace-relative name) inside it stayed unresolved. Positional arguments were unaffected, which is why it only surfaced at named-arg call sites. Recurse into the value like every other nested-expression arm. Byte-parity vs PHP 8.5 + regression test.

chadmandoo and others added 3 commits July 5, 2026 21:49
…olver arm)

`new self(label: $name, url: new Url('/'))` failed "Undefined class:
Url" — the name resolver's expression walk had no ExprKind::NamedArg
arm, so a named argument's VALUE expression fell through the `_ =>
clone` default and escaped rewriting entirely: any imported alias (or
namespace-relative name) inside it stayed unresolved. Positional
arguments were unaffected, which is why the pattern only surfaced in
named-arg call sites (the ward-component-catalog previews() pattern —
5 survey classes).

Recurse into the value like every other nested-expression arm.
Byte-parity vs PHP 8.5 + codegen regression test (named-arg nested new
of an imported alias). Full suite 6182 passed / 1 env-only failure.
AIC EC-12 (illegalstudio#495).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 181925e)
@nahime0 nahime0 merged commit bc07ef8 into illegalstudio:main Jul 7, 2026
58 checks passed
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.

2 participants