All files / TRANSPILE/2-Plan/types IChainBase.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                                                   
import type TTypeInfo from "../../../types/TTypeInfo";
import type TValueBinding from "../../../types/TValueBinding";
import type IChainStep from "../../../types/IChainStep";
 
/**
 * #1668 (C7): what an assignment target writes, bound once where the target
 * is typed -- every classifier rule and handler reads this rather than a
 * registry keyed by a name each of them re-derived.
 */
interface IChainBase {
  /** The chain's root, as its spelling binds at the target */
  readonly root: TValueBinding | null;
  /** The root's declared type; none for a scope */
  readonly rootTypeInfo: TTypeInfo | undefined;
  /** The written variable's declared type: the root, or `Scope.member`'s */
  readonly typeInfo: TTypeInfo | undefined;
  /**
   * #1668 (C12): the chain's final step as the one operand typer typed it --
   * what the last op reads, and for a subscript whether it is an element, a
   * slice, a bit or a bit range. Undefined when nothing typed the chain.
   */
  readonly last: IChainStep | undefined;
}
 
export default IChainBase;