Whether any signature source is loaded at all, i.e. whether anything below can answer.
The export view of a package.
The package to look up.
Optionalversion: string
The version to answer for, versionOf if omitted.
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.
The qualified identifier of the function.
Optionalversion: string
The version to answer for, versionOf of its package if omitted.
Whether the database can resolve pkg at all, at any version.
The packages exporting name, ordered by downloads, see PackageSignatureSource.packagesExporting.
The formal parameter names of a qualified call, ready to hand to FunctionSemantics.call.match.toNames.
The qualified identifier of the function.
Optionalversion: string
The version to answer for, versionOf of its package if omitted.
Every loaded source as one, for the questions this interface does not ask.
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.
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.versionSelectionandsolver.sigdb.assumedRVersionhave 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.
Example