mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-10-26 06:02:22 +00:00
`ns.make()` now takes `make`'s return annotation from the namespace's module, in both the bound (`x = rp.make()`) and inline (`rp.make().m()`) forms, for every language whose provider records return annotations; Dart binds its prefixed-call locals so the same lookup applies. The lookup fails closed whenever it cannot prove the fact: the return must be anchored on a module-level Function of that name (TS/Dart hoist method returns, Go binds package-scope methods), the namespace must bind the module it targets (`import pkg.sub`), and a dotted return is not followed further. The namespace-name set is built from finalized import edges, never a `scopeTree.byId` walk, so it is safe under GITNEXUS_DISK_SCOPE_INDEX=1. Calls the analyzer cannot type are recorded as receiver-unresolved drops instead of exact misses: a receiver bound to an untyped namespace call, and an outer call that shares its start position with an inner one (site identity is now `receiver.member`). Corpus A/B against main: identical CALLS/ACCESSES edges outside the new fixtures. Receiver bench: call drops 128 -> 153, reads 44 -> 48. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| baseline-fingerprint.txt | ||
| baseline-import-target-fingerprint.txt | ||
| import-target-fingerprint.mjs | ||
| measure.mjs | ||