Commit 6f7189e
authored
fix(incremental): seed callee::restName typeMap keys and pass callerName in buildCallEdges (#1404)
Incremental rebuilds using buildCallEdges (incremental.ts) were missing two
things needed for Phase 8.3f scoped-key resolution (#1358 / #1369):
1. The typeMap was not seeded with callee::restName entries from
objectRestParamBindings × paramBindings. Without this seeding the scoped
key `callee::restName` (e.g. `f2::rest`) is absent from the map, so
resolveByMethodOrGlobal's third fallback (`typeMap.get(callerName::receiver)`)
has nothing to find and the rest-param call goes unresolved.
2. caller.callerName was not passed to resolveCallTargets, so even if the
scoped key was present in the typeMap (e.g. from WASM extraction), the
`${callerName}::${effectiveReceiver}` lookup in resolveByMethodOrGlobal
never fired.
Fix: mirror what buildObjectRestParamPostPass (native full-build post-pass)
and buildCallEdgesJS (WASM full-build path) already do:
- Compute restNameCallees to know how many callees share a rest name.
- Seed typeMap[callee::restName] for each objectRestParamBinding × paramBinding pair.
- Also seed the unscoped key when only one callee uses that rest name, so
resolution still works when callerName is null (findCaller couldn't match).
- Pass caller.callerName to resolveCallTargets (already present from #1389).
Also syncs call-resolver.ts and build-edges.ts with the scoped-key changes
from PR #1368 (merged to main separately), which this branch was missing.
docs check acknowledged
Closes #13691 parent 2695c60 commit 6f7189e
0 file changed
0 commit comments