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;
|