mirror of
https://github.com/morluto/rea
synced 2026-10-27 06:33:32 -04:00
fix(javascript): preserve agreeing module provenance
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user