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

    The signature database as the analyzed project sees it.

    A PackageSignatureSource answers for a version you name, and falls back to whatever it holds as newest when you name none. This adds the step above that, taking the version from what flowR resolved for the project, which is where solver.sigdb.versionOverrides, solver.sigdb.versionSelection and solver.sigdb.assumedRVersion have already been applied. So a query without a version is answered for the version the analysis actually assumes, not for the newest the database happens to carry.

    Obtain one from ReadOnlyFlowrAnalyzerDependenciesContext.signatures, and reach for sources only for what this does not cover.

    const db = analyzer.inspectContext().deps.signatures();
    db.versionOf('dplyr'); // the version the analysis assumes
    db.parametersOf(Identifier.make('lead', 'dplyr')); // its formals, for MatchArgs
    interface SignatureDb {
        available(this: void): boolean;
        exportsOf(
            this: void,
            pkg: string,
            version?: string,
        ): LibraryExports | undefined;
        functionOf(
            this: void,
            id: Identifier,
            version?: string,
        ): DecodedFunction | undefined;
        has(this: void, pkg: string): boolean;
        packagesExporting(this: void, name: string): readonly string[];
        parametersOf(
            this: void,
            id: Identifier,
            version?: string,
        ): readonly string[] | undefined;
        sources(this: void): PackageSignatureSource;
        versionOf(this: void, pkg: string): string | undefined;
    }
    Index
    • Whether any signature source is loaded at all, i.e. whether anything below can answer.

      Parameters

      • this: void

      Returns boolean

    • The database entry for a qualified call, i.e. a pkg::fn Identifier. Decodes only that one function rather than the whole package.

      A name the package answers only as part of an S4 group falls back to the group: Matrix::sin is served by Matrix's Math entry when there is no sin of its own, because that is what an sin(x) call dispatches to. The result then carries the group's name, not the one that was asked for.

      The Identifier decides how far the lookup reaches: pkg::fn answers only with what the package exports, pkg:::fn reaches its internals as well, exactly as R has it.

      Parameters

      • this: void
      • id: Identifier

        The qualified identifier of the function.

      • Optionalversion: string

        The version to answer for, versionOf of its package if omitted.

      Returns DecodedFunction | undefined

    • Whether the database can resolve pkg at all, at any version.

      Parameters

      • this: void
      • pkg: string

      Returns boolean

    • The version the analysis assumes for pkg, undefined if flowR could not pin one down. This is what every lookup here uses when no version is given.

      Parameters

      • this: void
      • pkg: string

      Returns string | undefined