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 55 56 | 20x 3x | /**
* Factory functions and type guards for IParameterInfo.
*
* Provides utilities for creating and inspecting C-Next function parameters.
*/
import type IParameterInfo from "../transpiler/types/symbols/IParameterInfo";
import type TType from "../transpiler/types/TType";
class ParameterUtils {
// ============================================================================
// Factory Functions
// ============================================================================
/**
* Create a parameter with the given properties.
*/
static create(options: {
name: string;
type: TType;
isConst: boolean;
isArray: boolean;
arrayDimensions?: ReadonlyArray<number | string>;
isAutoConst?: boolean;
}): IParameterInfo {
return {
name: options.name,
type: options.type,
isConst: options.isConst,
isArray: options.isArray,
...(options.arrayDimensions !== undefined && {
arrayDimensions: options.arrayDimensions,
}),
...(options.isAutoConst !== undefined && {
isAutoConst: options.isAutoConst,
}),
};
}
// ============================================================================
// Type Guards
// ============================================================================
/**
* Check if parameter has array dimensions.
*
* Returns true if arrayDimensions is defined and has at least one dimension.
*/
static isArray(param: IParameterInfo): boolean {
return (
param.arrayDimensions !== undefined && param.arrayDimensions.length > 0
);
}
}
export default ParameterUtils;
|