All files / transpiler/output/codegen/types ITypeValidatorDeps.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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54                                                                                                           
/**
 * Dependencies for TypeValidator - allows TypeValidator to be independent of CodeGenerator
 * Issue #63: Extracted dependencies for better separation of concerns
 */
import ICodeGenSymbols from "../../../types/ICodeGenSymbols";
import SymbolTable from "../../../logic/symbols/SymbolTable";
import TTypeInfo from "./TTypeInfo";
import TParameterInfo from "./TParameterInfo";
import ICallbackTypeInfo from "./ICallbackTypeInfo";
import TypeResolver from "../TypeResolver";
 
interface ITypeValidatorDeps {
  /** Symbol information from C-Next source (ADR-055: ICodeGenSymbols) */
  symbols: ICodeGenSymbols | null;
 
  /** Symbol table for C header struct lookups */
  symbolTable: SymbolTable | null;
 
  /** Type registry for variable type information */
  typeRegistry: Map<string, TTypeInfo>;
 
  /** Type resolver for type checking operations (Issue #61) */
  typeResolver: TypeResolver;
 
  /** Callback type definitions for signature validation */
  callbackTypes: Map<string, ICallbackTypeInfo>;
 
  /** Known function names in the program */
  knownFunctions: Set<string>;
 
  /** Known global variable names */
  knownGlobals: Set<string>;
 
  /** Callback to get current scope name */
  getCurrentScope: () => string | null;
 
  /** Callback to get scope members map */
  getScopeMembers: () => Map<string, Set<string>>;
 
  /** Callback to get current function parameters */
  getCurrentParameters: () => Map<string, TParameterInfo>;
 
  /** Callback to get local variables in current function */
  getLocalVariables: () => Set<string>;
 
  /** Callback to resolve identifiers to scoped names */
  resolveIdentifier: (name: string) => string;
 
  /** Callback to get expression type */
  getExpressionType: (ctx: unknown) => string | null;
}
 
export default ITypeValidatorDeps;