Interface CreateFunctionTypeDetails<Specifics>

Contains properties which are be relevant for all types to create, i.e. it is used for specifying details of all types to create.

interface CreateFunctionTypeDetails<Specifics extends TypirSpecifics> {
    associatedLanguageNode?: Specifics["LanguageType"];
    functionName: string;
    inferenceRulesForCalls: InferFunctionCall<
        Specifics,
        Specifics["LanguageType"],
    >[];
    inferenceRulesForDeclaration: InferCurrentTypeRule<
        FunctionType,
        Specifics,
        Specifics["LanguageType"],
    >[];
    inputParameters: CreateParameterDetails<Specifics>[];
    outputParameter: undefined | CreateParameterDetails<Specifics>;
}

Type Parameters

Hierarchy (View Summary)

Properties

associatedLanguageNode?: Specifics["LanguageType"]

A node from the language might be associated with the new type to create, e.g. the declaration node in the AST (e.g. a FunctionDeclarationNode is associated with the corresponding FunctionType).

functionName: string
inferenceRulesForCalls: InferFunctionCall<Specifics, Specifics["LanguageType"]>[]
inferenceRulesForDeclaration: InferCurrentTypeRule<
    FunctionType,
    Specifics,
    Specifics["LanguageType"],
>[]
inputParameters: CreateParameterDetails<Specifics>[]
outputParameter: undefined | CreateParameterDetails<Specifics>

The order of parameters is important!