All files / types/symbols IBitmapFieldSymbol.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 27 28 29 30 31                                                             
import type IBitmapFieldLayout from "../IBitmapFieldLayout";
import type IBaseSymbol from "./IBaseSymbol";
 
/**
 * Symbol representing one named bit region of a bitmap.
 *
 * Was `IBitmapFieldInfo`, which carried an offset and a width and not even a
 * name -- the name lived only as the enclosing Map's key, so a field handed to
 * a helper arrived anonymous (#1318).
 *
 * The bit region itself comes from `IBitmapFieldLayout` rather than being
 * restated. It used to be restated, and #1486's gate allow-listed the
 * restatement as "the symbol, not the projection" -- but #1318 decided which
 * TYPE the consumers receive, not that the two declarations of the same two
 * fields must be maintained in parallel. They were: adding a third bit-region
 * property meant editing this file and `IBitmapFieldLayout` in lockstep, which
 * is the defect #1486 was filed to end, surviving inside the check written to
 * end it. Composing states the relationship the projection already assumes and
 * widens nothing -- structural typing made this type assignable to the layout
 * either way; `extends` is what makes the compiler enforce it.
 *
 * `fullyQualifiedCName` is an INDEX KEY, not an emitted identifier: a bitmap
 * field becomes shift-and-mask arithmetic, never a C identifier of its own.
 */
interface IBitmapFieldSymbol extends IBaseSymbol, IBitmapFieldLayout {
  /** Discriminator narrowed to "bitmap_field" */
  readonly kind: "bitmap_field";
}
 
export default IBitmapFieldSymbol;