Problem
The resolver is name-based: import { foo } from './bar' is not followed. When foo exists in several files it picks same-file-first then first-global-match — which can be wrong. This is the single biggest accuracy lever (see docs/limitations.md § Resolver accuracy).
Proposal
Follow import paths during edge resolution:
- relative specifiers (
./bar, ../x), with index.ts directory conventions
tsconfig.json paths aliases (read the file directly — no compiler API, no child_process)
Out of scope here (separate issues): re-export chains (#TBD), scope-aware binding (#TBD), type-based method dispatch (deferred).
Acceptance
Problem
The resolver is name-based:
import { foo } from './bar'is not followed. Whenfooexists in several files it picks same-file-first then first-global-match — which can be wrong. This is the single biggest accuracy lever (seedocs/limitations.md§ Resolver accuracy).Proposal
Follow import paths during edge resolution:
./bar,../x), withindex.tsdirectory conventionstsconfig.jsonpathsaliases (read the file directly — no compiler API, nochild_process)Out of scope here (separate issues): re-export chains (#TBD), scope-aware binding (#TBD), type-based method dispatch (deferred).
Acceptance
bench/resolver/corpus improves vs baselinechild_process