mirror of
https://github.com/morluto/rea.git
synced 2026-11-15 11:13:21 +00:00
fix(javascript): retain compiler-dependent module resolution facts
Compare import and require outcomes for static TypeScript references when compiler options are unknown. Preserve branch facts through worker IR and both graph projections; retain declaration fallbacks as candidates without changing explicitly selected paths. Validation: 210 focused resolver and semantic tests; 21 production-boundary and source-extension tests. A bounded 2,000-reference probe adds about 16–17 ms wall time for dual resolution; full task token costs and real compiled application behavior remain unmeasured.
This commit is contained in:
1 parent
ded199abcd
commit
c923fb0dc9
18 files changed
+503
-100
No files matched your search
@@ -533,7 +533,20 @@ const addModuleLink = (
|
||||
},
|
||||
referenceNode: t.Node,
|
||||
): void => {
|
||||
const collected = { ...link, callableId: link.callableId ?? null };
|
||||
const resolutionMode =
|
||||
link.resolutionMode ??
|
||||
(link.kind === "import" ||
|
||||
link.kind === "re-export" ||
|
||||
link.kind === "type-import"
|
||||
? state.staticImportResolutionMode
|
||||
: link.kind === "require"
|
||||
? "require"
|
||||
: undefined);
|
||||
const collected = {
|
||||
...link,
|
||||
...(resolutionMode === undefined ? {} : { resolutionMode }),
|
||||
callableId: link.callableId ?? null,
|
||||
};
|
||||
state.moduleLinks.push(collected);
|
||||
if (link.localName !== null) {
|
||||
const binding = resolveSemanticBindingState(
|
||||
|
||||
Reference in new issue
Block a user