fix(javascript): preserve agreeing module provenance

This commit is contained in:
morluto committed 2026-10-10 02:49:46 +08:00
1 parent 2793672ee2
commit db171be6e5
2 files changed
+82 -3

No files matched your search

@@ -604,11 +604,20 @@ const provenanceForExpression = (
provenanceForExpression(left, nestedContext(context)),
provenanceForExpression(right, nestedContext(context)),
];
const origins = candidates.flatMap((candidate) => candidate.origins);
const origins = uniqueSemanticOrigins(
candidates.flatMap((candidate) => candidate.origins),
);
const allModuleOrigins = candidates.every(
({ status }) => status === "module",
);
if (allModuleOrigins && origins.length === 1)
return semanticOriginsProvenance(origins);
return origins.length > 0
? semanticAmbiguousProvenance(
uniqueSemanticOrigins(origins),
"Multiple module origins.",
origins,
allModuleOrigins
? "Multiple module origins."
: "Conditional provenance includes a non-module alternative.",
)
: semanticUnresolvedProvenance(
"unknown",