@eagleoutice/flowr - v2.17.4
    Preparing search index...

    Variable FunctionSemanticsConst

    FunctionSemantics: {
        argumentRoles: (
            this: void,
            ids: Iterable<NodeId>,
            graph: DataflowGraph,
            options?: ArgumentRolesOptions,
        ) => Record<NodeId, FunctionArgumentRoles>;
        call: {
            argument: {
                mask: (names: readonly (...)[]) => number;
                vocabulary: Readonly<Record<(...), (...)>>;
                words: (props: (...) | (...)) => (...)[];
            };
            deferred: {
                forcedAt(
                    this: void,
                    graph: DataflowGraph,
                    binding: NodeId,
                    cfg: ControlFlowGraph,
                    viaClosures?: boolean,
                ): readonly NodeId[];
                indexOf<Info>(
                    this: void,
                    graph: DataflowGraph,
                    idMap: AstIdMap<(...) & (...)>,
                ): NameIndex;
                link<Info>(
                    this: void,
                    graph: DataflowGraph,
                    expr: NodeId,
                    index: NameIndex,
                    idMap: AstIdMap<(...) & (...)>,
                    forces?: ForceSites,
                    inCallerFrame?: boolean,
                ): void;
                publish<Info>(
                    this: void,
                    graph: DataflowGraph,
                    expr: NodeId,
                    index: NameIndex,
                    idMap: AstIdMap<(...) & (...)>,
                    at: NodeId,
                    sites: readonly NodeId[],
                    cfg?: ControlFlowGraph<(...)>,
                ): void;
            };
            match: {
                findWithProps(
                    this: void,
                    args: readonly FunctionArgument[],
                    signature: FnSig,
                    props: number,
                ): NodeId[];
                formalsOf: <Info extends ParentInformation>(
                    this: void,
                    call: RFunctionCall<(...)>,
                    graph: DataflowGraph,
                    ctx: ReadOnlyFlowrAnalyzerContext,
                ) => (...) | (...);
                handsOnDots(
                    this: void,
                    args: readonly FunctionArgument[],
                    graph: DataflowGraph,
                ): boolean;
                onCallAndLink(
                    this: void,
                    args: readonly FunctionArgument[],
                    params: readonly RParameter<(...)>[],
                    graph: DataflowGraph,
                ): Map<NodeId, NodeId>;
                toDefinition<Info extends ParentInformation>(
                    this: void,
                    call: RFunctionCall<Info>,
                    graph: DataflowGraph,
                    ctx: ReadOnlyFlowrAnalyzerContext,
                ): ReadonlyMap<(...), (...)> | undefined;
                toNames<Info = object>(
                    this: void,
                    args: readonly PotentiallyEmptyRArgument<(...)>[],
                    paramNames: readonly BrandedIdentifier[],
                ): ReadonlyMap<BrandedIdentifier, RArgument<(...)>>;
                toSpec<Targets extends NodeId | BrandedIdentifier = string>(
                    this: void,
                    args: readonly FunctionArgument[],
                    params: Record<(...), (...)> | readonly (...)[],
                ): Map<Targets, (...)[]>;
                unforceUnreadDots(this: void, graph: DataflowGraph): void;
            };
            nse: {
                dropResolvedMask(
                    this: void,
                    graph: DataflowGraph,
                    id: NodeId,
                    name: Identifier,
                ): MaskingCall | undefined;
                isUnquote<Info>(this: void, node: RNode<Info>, style: Unquote): boolean;
                linkMasksToData(
                    this: void,
                    graph: DataflowGraph,
                    calls: readonly MaskingCall[],
                ): void;
                maskCandidate(
                    this: void,
                    vertex: DataflowGraphVertexInfo | undefined,
                ): boolean;
                maskedName(this: void, graph: DataflowGraph, id: NodeId): boolean;
                suppliedByMask(
                    this: void,
                    graph: DataflowGraph,
                    id: NodeId,
                    vertex?: DataflowGraphVertexInfo | undefined,
                ): boolean;
                unmark(
                    this: void,
                    graph: DataflowGraph,
                    id: NodeId,
                    which?: (target: NodeId) => boolean,
                ): NodeId[];
                unquoted<Info extends ParentInformation>(
                    this: void,
                    root: RNode<(...)> | undefined,
                    style: Unquote,
                ): ReadonlySet<(...)> | undefined;
            };
            props: {
                filter(
                    this: void,
                    stated: StatedProps | undefined,
                    selector: PropSelector,
                ): StatedProps;
                hasAll(
                    this: void,
                    stated: StatedProps | undefined,
                    selector: PropSelector,
                ): boolean;
                hasAny(
                    this: void,
                    stated: StatedProps | undefined,
                    selector?: PropSelector,
                ): boolean;
                isCallProp: (this: void, selector: PropSelector) => selector is number;
                isEmptyMask(this: void, mask: PropMask): boolean;
                isSemanticTag: (
                    this: void,
                    selector: PropSelector,
                ) => selector is SemanticCallTag;
                join(
                    this: void,
                    props1: StatedProps | undefined,
                    props2: StatedProps | undefined,
                ): StatedProps;
                key(this: void, selector: PropSelector): string;
                labels(this: void, stated: StatedProps | undefined): string[];
                mask(this: void, names: readonly string[]): PropMask;
                names(this: void, selector: PropSelector): string[];
                vocabulary: Readonly<Record<(...), (...)>>;
                words(this: void, props: number | undefined): string[];
            };
            quoted: {
                capturedBy(
                    this: void,
                    graph: DataflowGraph,
                    id: NodeId,
                ): readonly NodeId[];
                evaluateIn: <Info>(
                    this: void,
                    graph: DataflowGraph,
                    expr: NodeId,
                    environment: REnvironmentInformation,
                    idMap: AstIdMap<(...)>,
                ) => readonly (...)[];
                evaluationDependencies(
                    this: void,
                    graph: DataflowGraph,
                    id: NodeId,
                ): NodeId[];
                finalize<Info>(
                    this: void,
                    graph: DataflowGraph,
                    environment: REnvironmentInformation,
                    idMap: AstIdMap<(...) & (...)>,
                    controlFlow: () => (...) | (...),
                ): void;
                sourcesOf(
                    this: void,
                    graph: DataflowGraph,
                    id: NodeId,
                ): readonly CapturedExpression[];
            };
            signature: {
                every: FnSig;
                forced: (this: void, sig: (...) | (...), count: number) => (...) | (...);
                forcing: (this: void, sig: (...) | (...), count: number) => (...) | (...);
                layout: (this: void, sig: FnSig) => SigLayout;
                only: (this: void, index: number, name: string) => FnSig;
                posWith: (
                    this: void,
                    layout: SigLayout,
                    count: number,
                    prop: number,
                ) => (...)[];
                propAt: (
                    this: void,
                    __namedParameters: SigLayout,
                    index: number,
                ) => number;
                resources: (sig: FnSig, writes: boolean) => FnSig;
                slots: (
                    this: void,
                    __namedParameters: SigLayout,
                    argNames: readonly (...)[],
                ) => (...)[];
            };
            unsupported: {
                isUnsupportedCall(
                    this: void,
                    vertex: DataflowGraphVertexArgument | undefined,
                    dfg: DataflowGraph,
                ): boolean;
            };
        };
        classes: {
            argFor: <Info>(
                args: readonly PotentiallyEmptyRArgument<(...)>[],
                ref: ClassArgRef | undefined,
            ) => RNode<(...)> | undefined;
            declared: (graph: DataflowGraph) => Map<ClassName, DeclaredClass>;
            isDeclaring(
                this: void,
                vertex: DataflowGraphVertexInfo | undefined,
            ): boolean;
            of: <Info>(
                config: ClassDeclarationConfig,
                args: readonly PotentiallyEmptyRArgument<(...)>[],
            ) => ClassDeclaration;
            superOf: (
                name: ClassName,
                classes: ReadonlyMap<ClassName, ClassDeclaration>,
            ) => ClassName[];
            toSig: (
                classes: ReadonlyMap<ClassName, DeclaredClass>,
                ownerOf?: (name: ...) => ...,
            ) => SigClassInfo[];
        };
        exceptions: (
            this: void,
            id: NodeId,
            graph: CallGraph,
            __namedParameters?: FunctionExceptionsOptions,
        ) => ExceptionsByFunction;
        frameReflection: (
            this: void,
            definition: DataflowGraphVertexFunctionDefinition,
            graph: DataflowGraph,
            __namedParameters: FrameReflectionOptions,
        ) => number;
        isHigherOrder: (
            this: void,
            id: NodeId,
            graph: DataflowGraph,
            __namedParameters: HigherOrderFunctionsOptions,
        ) => boolean;
        name: "FunctionSemantics";
        promiseDependencies: (
            this: void,
            id: NodeId,
            graph: DataflowGraph,
        ) => NodeId[];
        promiseForcing: (
            this: void,
            graph: DataflowGraph,
            __namedParameters?: FunctionStrictnessesOptions,
        ) => (holder: NodeId, inner: NodeId) => Ternary;
        props: (
            this: void,
            definitions: readonly NodeId[],
            graph: DataflowGraph,
            options?: FunctionPropsOptions,
        ) => InferredFunctions;
        settleDefinitionsInPromises: (
            this: void,
            graph: DataflowGraph,
            __namedParameters?: FunctionStrictnessesOptions,
        ) => void;
        settleJumpsInPromises: (
            this: void,
            graph: DataflowGraph,
            topLevel: readonly ExitPoint[],
            __namedParameters?: FunctionStrictnessesOptions,
        ) => void;
        strictness: (
            this: void,
            ids: Iterable<NodeId>,
            graph: DataflowGraph,
            __namedParameters?: FunctionStrictnessesOptions,
        ) => Record<NodeId, FunctionStrictness>;
    } = ...

    The one helper to ask what a function does: what it makes of its arguments, what it may raise, which formals it forces, and what it declares as a class.

    Type Declaration

    api