CodeQL library for Java
codeql/java-all 0.6.1 ( changelog , source )
Search

Module DataFlowPrivate

Import path

import semmle.code.java.dataflow.internal.DataFlowPrivate

Imports

Predicates

accessPathLimit
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.

containerContent

Holds if the the content c is a container.

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.

getAdditionalFlowIntoCallNodeTerm

Gets an additional term that is added to the join and branch computations to reflect an additional forward or backwards branching factor that is not taken into account when calculating the (virtual) dispatch cost.

getAnOutNode

Gets a node that can read the value returned from call with return kind kind.

getContentApprox

Gets an approximated value for content c.

getErasedRepr

Gets a representative (boxed) type for t for the purpose of pruning possible flow. A single type is used for all numeric types to account for numeric conversions, and otherwise the erasure is used.

getNodeType
isUnreachableInCall

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

jumpStep

Holds if data can flow from node1 to node2 through a static field or variable capture.

lambdaCall

Holds if call is a 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.

nodeIsHidden

Holds if n should be hidden from path explanations.

ppReprType

Gets a string representation of a type returned by getErasedRepr.

readStep

Holds if data can flow from node1 to node2 via a read of f. Thus, node1 references an object with a field f whose value ends up in node2.

storeStep

Holds if data can flow from node1 to node2 via an assignment to f. Thus, node2 references an object with a field f that contains the value of node1.

Classes

CastNode

A node that performs a type cast.

ContentApprox

An approximated Content.

DataFlowCall

A call relevant for data flow. Includes both source calls and synthesized calls.

DataFlowCallable
ReturnKind

A return kind. A return kind describes how a value can be returned from a callable. For Java, this is simply a method return.

SrcCall

A source call, that is, a Call.

SummaryCall

A synthesized call inside a SummarizedCallable.

Aliases

DataFlowExpr

A common super-class that represents all kinds of expressions.

DataFlowType

A common super-class for various kinds of reference types, including classes, interfaces, type parameters and arrays.

LambdaCallKind

A method is a particular kind of callable.