CodeQL library for Python
codeql/python-all 0.12.1 (changelog, source)
Search

Module MakeImplCommon::Cached

Import path

import codeql.dataflow.internal.DataFlowImplCommon

Imports

FlowThrough

Provides predicates for calculating flow-through summaries.

Predicates

allowParameterReturnInSelfCached
argumentNode
callEnclosingCallable
castNode
castingNode
clearsContentCached
expectsContentCached
forceCachingInSameStage

If needed, call this predicate from DataFlowImplSpecific.qll in order to force a stage-dependency on the DataFlowImplCommon.qll stage and thereby collapsing the two stages.

getAnOutNodeExt
getContentApproxCached
getSecondLevelScopeCached
hiddenNode
isUnreachableInCallCached
jumpStepCached
mayBenefitFromCallContextExt

Holds if the set of viable implementations that can be called by call might be improved by knowing the call context.

nodeDataFlowType
nodeEnclosingCallable
outNodeExt
paramMustFlow
parameterNode
readSet
returnNodeExt
simpleLocalFlowStepExt
store

Holds if data can flow from node1 to node2 via a direct assignment to c.

storeSet
viableCallableCached
viableCallableLambda

Gets a viable target for the lambda call call.

viableImplInCallContextExt

Gets a viable dispatch target of call in the context ctx. This is restricted to those calls for which a context might make a difference.

viableParamArg

Holds if arg is a possible argument to p in call, taking virtual dispatch into account.

viableReturnPosOut

Holds if a value at return position pos can be returned to out via call, taking virtual dispatch into account.

Datatypes

Modules

CachedCallContextSensitivity

A cached version of the CallContextSensitivity module. Only used in pruning stages 1+2 and flow exploration; all subsequent pruning stages use a pruned version, based on the relevant call edges from the previous stage.