* fix(cpp): thread call-site types into qualified member lookup (#1632)
Widen Callsite (arity optional, add argumentTypes) and add optional
callsite?: Callsite to ScopeResolver.resolveQualifiedReceiverMember.
receiver-bound-calls.ts passes the ReferenceSite through structurally;
resolveCppQualifiedNamespaceMember forwards it to narrowOverloadCandidates
along with cppConversionRank, enabling exact-type and conversion-rank
disambiguation across inline-namespace children.
Behavior change:
- outer::foo(42) where v1 declares foo(int) and v2 declares foo(double)
now resolves to v1::foo (was: 0 edges, conservatively suppressed).
- Same-name same-normalized-signature (e.g. foo(int) vs foo(long)) still
suppresses at 0 edges via isOverloadAmbiguousAfterNormalization.
- ADL using-import path (resolveAdlCandidates) unchanged — passes no
callsite, narrowing degrades to existing pass-through behavior.
Closes#1632. Part of #1564.
* fix(cpp): update legacy parity expected-failure list for #1632
- Remove stale expected-failure entry for old diff-sigs test name
(test now expects 1 edge; legacy DAG also emits 1 edge)
- Add entry for normalized-signature ambiguity (int vs long) test
- Rename describe block from 'conservative suppress' to
'distinct signatures resolved via call-site types'
Verified both modes:
REGISTRY_PRIMARY_CPP=1: 241/241 passed
REGISTRY_PRIMARY_CPP=0: 194 passed, 47 skipped, 0 failed