Skip to content

Helper Objects

github-actions[bot] edited this page Sep 1, 2026 · 1 revision

Generated from 'wiki-helper-objects.ts' on 2026-09-01, 11:38:11 UTC (v2.15.8, R v4.6.1), please do not edit directly.

A helper object is a const named after a type, holding the operations on values of it. flowR has 71 of them, and this page groups them by what they are about.

SourceLocation.at(node)?.startLine
DfgVertex.isFunctionCall(vertex)
DfEdge.includesType(edge, EdgeType.Reads)

They share one shape, which is also how this page finds them:

export const Thing = {
    name: 'Thing',
    doSomething(this: void, thing: Thing): Answer {
        /* ... */
    }
} as const;

Where something is

A place in the analyzed source, and the ways to name one.

helper what it is
SourceRange Utility functions for source ranges .
SourceLocation Utility functions for source locations .
NodeId What a NodeId is: the identity of a node within one analysis, plus the built-in and pkg::fn names encoded as one, and the ways to read a name back out of it.
SlicingCriterion The helper object for slicing criteria: parsing, validating and resolving them, one ( SlicingCriterion.parse ) or several ( SlicingCriterion.decodeAll ) at a time.
Playground Everything about flowR's playground that is not the page itself: what a link to it carries, and how one is written.

The normalized AST

What the R code is, once flowR has read it.

helper what it is
RNode Helper object to provide helper functions for RNodes .
RProject Helper object to identify RProject nodes by their type and to provide related functions.

Beside these sits one helper per kind of node, each named after what it matches, so a for loop is RForLoop and a call is RFunctionCall. Every one answers is, plus whatever that kind allows on top; RNode is where to start when the kind is not known yet.

Names and values

What a name is, and what a value flowR worked out may be.

helper what it is
Identifier Helper functions to work with identifiers .
RValue Reads the plain TS value a Value stands for, undefined whenever it stands for more than one, for none, or for another kind.
RStringValue Checks whether the given string is an R string literal (including raw strings).
RNumberValue What an RNumberValue is: R's number as it was written, its integer marker (1L) and its complex flag (1i) included.
TernaryLogic Always, never, or maybe, which is what a static answer about a running program usually is.
RVersion Helpers for R package versions (1.2-3 style), which are freer than SemVer.
RRange Helpers for R package version ranges (DESCRIPTION constraints like >= 0.4-9).

Environments and resolution

From a name to what it may refer to, and from a node to what it may hold.

helper what it is
REnvironment Helpers for navigating and manipulating environments around the global environment and attached-package search path.
Resolve The helper object for resolution: from a name to the definitions it may refer to, and from a node to the value(s) it may hold.
NodeValue The value(s) a node may hold.
ClosureRefs The open references a function definition still carries into its closure.

The dataflow graph

What depends on what. Dataflow is the way in; the rest are the pieces it hands back.

helper what it is
Dataflow Gas key for dataflow extraction.
DfgVertex The one helper to ask a vertex what it is.
DfEdge Helper Functions to work with DfEdge and EdgeType .
FunctionArgument Helper functions to work with FunctionArgument s.
UnknownSideEffect Helpers for the UnknownSideEffect union, which is either a plain NodeId or a { id, linkTo } object.
ControlDependency Utility functions to work with control dependencies .
DataflowInformation Helper object for DataflowInformation
CallGraph Helper object for call-graphs, you can compute new call graphs based on CallGraph.compute .
GraphHelper The underlying functions which work for any graph* like view.

Control flow

What may run after what.

helper what it is
CfgVertex Helper object for CfgVertex - a vertex in the ControlFlowGraph .
CfgEdge Helper object for CfgEdge - an edge in the ControlFlowGraph .
ControlFlow Records the control flow of a program in the DataflowGraph while the dataflow analysis walks it.

What a function and its calls mean

What an analysis works out about a definition, and what one call of it amounts to.

helper what it is
FunctionSemantics 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.

One entry point covers both halves: FunctionSemantics.props, FunctionSemantics.exceptions, FunctionSemantics.strictness and their kin answer about a definition, while FunctionSemantics.call holds what flowR states about a call (props, signature, argument), how R binds its arguments (match), and which of them it does not simply evaluate (nse, quoted, deferred).

Asking flowR something

The APIs an analysis is written against.

helper what it is
Query Running queries and reading what they reported, without Object.entries and the casts it forces.
FlowrSearchGenerator This object holds all the methods to generate search queries.
QueryFunctionFilter Resolves the function filter shared by the inspection queries (inspect-*).
HappensBeforeKey How an answer of the HappensBeforeQuery is keyed: the two criteria it was asked about, so that both the executor writing an answer and anyone reading one spell the key the same way.
LintingResults Helper functions for working with LintingResults .
LintQuickFix Helper for working with quick fixes .

The project and its configuration

What is being analyzed, and under which settings.

helper what it is
FlowrConfig flowR's configuration: its default, reading one from disk, and getting or setting a single value at a dotted path (an EngineConfigPath included).
DescriptionFile Access to the DESCRIPTION file of the analyzed project.

Output

Turning any of the above into something to look at.

helper what it is
Mermaid Global mermaid helper object with useful functions.
DataflowMermaid The helper object for all things regarding the mermaid based visualization of dataflow graphs!
Record Helper for transforming records.
ReplClipboard Output that the user most likely wants on their clipboard as well.

Clone this wiki locally