CodeQL library for Java
codeql/java-all 0.5.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.

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.