All files / transpiler/output/codegen/types ISeparatorContext.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 32 33 34 35 36                                                                       
/**
 * Context for determining member access separators in assignment targets.
 *
 * This interface encapsulates the pre-computed state needed to determine
 * whether to use "_", ".", "::", or "->" as the separator between identifiers
 * in member access chains.
 */
interface ISeparatorContext {
  /** Whether the access starts with `global.` prefix */
  readonly hasGlobal: boolean;
 
  /** Whether this is a cross-scope access (global.Scope or global.Register) */
  readonly isCrossScope: boolean;
 
  /** Whether the base identifier is a struct parameter */
  readonly isStructParam: boolean;
 
  /** Whether this is a C++ namespace/class access requiring :: */
  readonly isCppAccess: boolean;
 
  /** The scoped register name if using `this.REG`, otherwise null */
  readonly scopedRegName: string | null;
 
  /** Whether scopedRegName refers to a known register */
  readonly isScopedRegister: boolean;
 
  /**
   * Issue #895: Force pointer semantics even in C++ mode.
   * When true, struct params use -> instead of . because they're part of
   * a callback-compatible function that must match C typedef signatures.
   */
  readonly forcePointerSemantics?: boolean;
}
 
export default ISeparatorContext;