All files / transpiler/types/symbols IFunctionSymbol.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 IBaseSymbol from "./IBaseSymbol";
import type IScopeSymbol from "./IScopeSymbol";
import type IParameterInfo from "./IParameterInfo";
import type TType from "../TType";
import type TVisibility from "../TVisibility";
 
/**
 * Symbol representing a function definition.
 */
interface IFunctionSymbol extends IBaseSymbol {
  /** Discriminator narrowed to "function" */
  readonly kind: "function";
 
  /** Scope this function belongs to (overrides IBaseSymbol.scope with specific type) */
  readonly scope: IScopeSymbol;
 
  /** Function parameters */
  readonly parameters: ReadonlyArray<IParameterInfo>;
 
  /** Return type */
  readonly returnType: TType;
 
  /** Visibility within scope */
  readonly visibility: TVisibility;
 
  /** AST reference for function body (unknown to avoid parser dependency) */
  readonly body: unknown;
}
 
export default IFunctionSymbol;