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

Module DataFlowImplCommon

Import path

import semmle.code.java.dataflow.internal.DataFlowImplCommon

Imports

Predicates

accessPathApproxCostLimits

The cost limits for the AccessPathFront to AccessPathApprox expansion.

accessPathCostLimits

The cost limits for the AccessPathApprox to AccessPath expansion.

argumentPositionMatch

Holds if arg is an argument of call with an argument position that matches parameter position ppos.

checkCallContextCall

Checks whether call can resolve to calltarget in the call context cc. Assumes a context of calltarget = viableCallableExt(call).

checkCallContextReturn

Checks whether inner can return to call in the call context innercc. Assumes a context of inner = viableCallableExt(call).

getLocalCallContext

Gets the local call context given the call context and the callable that the contexts apply to.

getNodeDataFlowType

Gets the type of n used for type pruning.

getNodeEnclosingCallable

Gets the enclosing callable of n. Unlike n.getEnclosingCallable(), this predicate ensures that joins go from n to the result instead of the other way around.

getReturnPosition
recordDataFlowCallSite

Holds if the call context call either improves virtual dispatch in callable or if it allows us to prune unreachable nodes in callable.

resolveCall

Resolves a call from call in cc to result. This is equivalent to result = viableCallableExt(call) and checkCallContextCall(cc, call, result).

resolveReturn

Resolves a return from callable in cc to call. This is equivalent to callable = viableCallableExt(call) and checkCallContextReturn(cc, callable, call).

Classes

AccessPathFront

The front of an access path. This is either a head or a nil.

AccessPathFrontHead
AccessPathFrontNil
AccessPathFrontOption

An optional access path front.

ArgNode

A data-flow node that represents a call argument.

BooleanOption

An optional Boolean value.

CallContext

A call context to restrict the targets of virtual dispatch, prune local flow, and match the call sites of flow into a method with flow out of a method.

CallContextAny
CallContextCall
CallContextNoCall
CallContextReturn
CallContextSomeCall
CallContextSpecificCall
CastingNode

A Node at which a cast can occur such that the type should be checked.

DataFlowCallOption

An optional DataFlowCall.

LocalCallContext

A call context that is relevant for pruning local flow.

LocalCallContextAny
LocalCallContextSpecificCall
OutNodeExt

A node to which data can flow from a call. Either an ordinary out node or a post-update node associated with a call argument.

ParamNode

The value of a parameter at function entry, viewed as a node in a data flow graph.

ParamUpdateReturnKind
ReturnKindExt

An extended return kind. A return kind describes how data can be returned from a callable. This can either be through a returned value or an updated parameter.

ReturnNodeExt

A node from which flow can return to the caller. This is either a regular ReturnNode or a PostUpdateNode corresponding to the value of a parameter.

ReturnPosition

A callable tagged with a relevant return kind.

TypedContent

A Content tagged with the type of a containing object.

ValueReturnKind

Modules