All files / types IBitAccessAnalysis.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                                                   
/**
 * Whether an assignment target ends in a bit, or a bit range, of an integer.
 *
 * #1445: declared THREE times before this file existed -- in
 * `MemberChainAnalyzer` (which produces it), in `ICodeGenApi` (which dispatches
 * to it) and in `CodeGenerator` (which implements that method) -- all
 * byte-identical, so a fifth field meant three edits. CLAUDE.md: "If two
 * interfaces need the same fields, extract a shared type."
 *
 * In the shared `src/types/` root rather than beside its producer because more
 * than one area names it, `ICodeGenApi` (`src/TRANSPILE/types/`) among them: a
 * shape named by more than one area is a shared contract, and this directory is
 * where the layer rules send those (#1853).
 *
 * #1668 review: it carried the rendered base target, bit index and type as
 * well, built from the source spelling, so a renamed local's bit write wrote
 * the global it shadows. The write is `AssignmentHandlerUtils.writeBits` now,
 * the one every bit handler uses, and this is only the decision.
 */
interface IBitAccessAnalysis {
  /** True if the last subscript is bit access on an integer */
  isBitAccess: boolean;
}
 
export default IBitAccessAnalysis;