CodeQL library for C#
codeql/csharp-all 2.0.1-dev (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
compatibleTypesCached
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
getParamReturnPosition
getReturnPositionEx
getSecondLevelScopeCached
getUnreachableSet
getValueReturnPosition
hiddenNode
isTopType
isUnreachableInCallCached
jumpStepCached
localFlowStepExImpl

Holds if data can flow in one local step from node1 to node2.

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
simpleLocalFlowStepExt
store

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

storeSet
typeStrongerThanCached
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.

Classes

UnreachableSet

A set of nodes that is unreachable in some call context.

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.

Aliases

UnreachableSetOption

An option type. This is either a singleton None or a Some wrapping the given type.