CodeQL library for Ruby
codeql/ruby-all 0.8.15-dev (changelog, source)
Search

Module DataFlowPrivate

Import path

import codeql.ruby.dataflow.internal.DataFlowPrivate

Imports

ArgumentNodes
Cached

A collection of cached types and predicates to be evaluated in the same stage.

OutNodes
ParameterNodes
ReturnNodes

Predicates

additionalLambdaFlowStep

Extra data-flow steps needed for lambda flow analysis.

allowParameterReturnInSelf

Holds if flow is allowed to pass from parameter p and back to itself as a side-effect, resulting in a summary from p to itself.

clearsContent

Holds if values stored inside content c are cleared at node n. For example, any value stored inside f is cleared at the pre-update node associated with x in x.f = newValue.

compatibleTypes

Holds if t1 and t2 are compatible, that is, whether data can flow from a node of type t1 to a node of type t2.

expectsContent

Holds if the value that is being tracked is expected to be stored inside content c at node n.

forceHighPrecision

Holds if access paths with c at their head always should be tracked at high precision. This disables adaptive access path precision for such access paths.

getAPostUpdateNodeForArg

Gets a node for which to construct a post-update node for argument arg.

getContentApprox

Gets an approximated value for content c.

getNodeType

Gets the type of n used for type pruning.

isArgumentNode

Holds if arg is an ArgumentNode of c with position pos.

isNonConstantExpr

Holds if n is not a constant expression.

isParameterNode

Holds if p is a ParameterNode of c with position pos.

isUnreachableInCall

Holds if the node n is unreachable when the call context is call.

jumpStep
knownSinkModel
knownSourceModel
lambdaCall

Holds if call is a (from-source or from-summary) lambda call of kind kind where receiver is the lambda expression.

lambdaCreation

Holds if creation is an expression that creates a lambda of kind kind for c.

lambdaSourceCall

Holds if call is a from-source lambda call of kind kind where receiver is the lambda expression.

localMustFlowStep
neverSkipInPathGraph

Holds if n should never be skipped over in the PathGraph and in path explanations.

nodeGetEnclosingCallable

Gets the callable in which this node occurs.

nodeIsHidden

Holds if n should be hidden from path explanations.

ppReprType

Gets a string representation of a DataFlowType.

readStep

Holds if there is a read step of content c from node1 to node2.

readStepCommon

Subset of readStep that should be shared with type-tracking.

storeStep

Holds if data can flow from node1 to node2 via an assignment to content c.

storeStepCommon

Subset of storeStep that should be shared with type-tracking.

typeStrongerThan

Classes

AdditionalJumpStep

A unit class for adding additional jump steps.

ArgumentNode

A data-flow node that represents a call argument.

CaptureNode

A synthesized data flow node representing a closure object that tracks captured variables.

CapturedVariableNode

A data flow node representing a captured variable. Only used in type tracking.

CastNode

A node that performs a type cast.

ContentApprox

An approximated Content.

DataFlowType
FlowSummaryNode

A data-flow node used to model flow summaries.

NodeImpl
OutNode

A data-flow node that represents the output of a call.

PostUpdateNodeImpl
ReturnNode

A data-flow node that represents a value returned by a callable.

ReturningStatementNode

A value returning statement, viewed as a node in a data flow graph.

SourceReturnNode

A data-flow node that represents a value returned by a callable.

SsaDefinitionExtNode

An SSA definition, viewed as a node in a data flow graph.

SsaInputDefinitionExt

An SSA definition into which another SSA definition may flow.

SsaInputNode

A node that represents an input to an SSA phi (read) definition.

SsaSelfDefinitionNode

An SSA definition for a self variable.

Datatypes

Modules

ArgumentNodes
LocalFlow

Provides predicates related to local data flow.

VariableCapture

Provides logic related to captured variables.

Aliases

DataFlowExpr

A control-flow node that wraps an AST expression.

DataFlowSecondLevelScope

The trivial type with a single element.