mirror of
https://github.com/morluto/rea.git
synced 2026-11-11 01:13:39 +00:00
* refactor(javascript): break the semantic analysis import cycle Split shared semantic facts out of the analysis hub so projectors of effects, evaluation, and identity no longer import one another in a cycle. * refactor(javascript): share the import specifier reader Read static imports in one module used by the boundary checker and both cycle guards, so those rules cannot drift apart. --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
20 lines
837 B
TypeScript
20 lines
837 B
TypeScript
import type * as t from "@babel/types";
|
|
import type { JavaScriptSemanticPropertyPath } from "./javascriptSemanticPropertyPaths.js";
|
|
|
|
/** Shared shape of an iterator or property-read source. */
|
|
export interface IterationSourceValue {
|
|
readonly node: t.Node;
|
|
readonly projection: JavaScriptSemanticPropertyPath;
|
|
readonly iterationSources?: readonly IterationSourceValue[];
|
|
}
|
|
|
|
/** An iterator receiver or property reference store, with default guards. */
|
|
export interface SemanticIterationSource extends IterationSourceValue {
|
|
readonly iterationSources?: readonly IterationSourceValue[];
|
|
readonly kind: "iteration" | "reference-store";
|
|
readonly mutation: t.Node;
|
|
readonly target?: t.MemberExpression;
|
|
readonly fallbackSources?: readonly IterationSourceValue[];
|
|
readonly requiredSources?: readonly IterationSourceValue[];
|
|
}
|