PHP new \Foo (explicit global) binds a same-named project class: the 0.1.4 anchor fix covered the type ref but not its paired call ref #533
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#533
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
PHP
new \InvalidArgumentException(...)(an explicit global-namespace class) binds to a project class with the same short name,GuzzleHttp\Exception\InvalidArgumentException, viatier1b_qualified_bypass. There are 13 resolved phantoms on php-guzzle, for examplesrc/Pool.php:156. Fixture:lang-out/php/fixture/src/Child.php:43.Cause: half of a paired fix
crates/guest/php/src/php.rs:1387emit_object_creation(and:904emit_function_call) drop the leading\: the ref is qualified, but its qualifier is None. Package 0.1.4 fixed this for the type ref (parity-deltas.toml,type-ref-written-namespace) but not for its paired call ref. ("Fixing one half of a paired field makes the other the bug.")Proposal
\) on every PHP ref written with a leading backslash: call,new, type, static.qualified_namenode carries its anchor. That turns the pair into a structural rule, so the next half cannot be missed.Acceptance
precision_gatePHP gains a\XvsNs\Xdecoy fornew.Filed from the per-language review on 2026-11-09: 8 agents, one per language plus one for Vue/Svelte/XAML/timeline, run against copies of the pinned corpus repos (
tests/corpus/corpus.toml) using installed build2dcfc615, which differs from master only by XAML/CI commits. The top claim of every issue was spot-checked in the main session. Artifacts live under the review session's scratchpadlang-out/<lang>/and are available on request.buildagent referenced this issue2026-11-09 09:20:55 +01:00
Consolidated into #531 during the 2026-11-09 triage. The remaining scope of this issue is tracked there as a checklist item; this report stays as the detailed evidence.