CodeQL library for C#
codeql/csharp-all 4.0.1-dev (changelog, source)
Search

Module MakeImplCommon

Import path

import codeql.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.

compatibleTypesFilter
getAnOutNodeExt
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.

typeStrongerThanFilter

Classes

AccessPathFront

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

AccessPathFrontHead
AccessPathFrontNil
AccessPathFrontOption

An optional access path front.

ApproxAccessPathFront

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

ApproxAccessPathFrontHead
ApproxAccessPathFrontNil
ApproxAccessPathFrontOption

An optional approximated access path front.

ArgNode

A data-flow node that represents a call argument.

ArgNodeEx
BooleanOption

An optional Boolean value.

CastingNode

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

CastingNodeEx

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
NodeEx
OutNodeEx
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.

ParamNodeEx
ParamUpdateReturnKind
RetNodeEx

A node from which flow can return to the caller. This is either a regular ReturnNode or a synthesized node for flow out via a parameter.

ReturnCtx

A return context used to calculate flow summaries in reverse flow.

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.

ReturnPosition

A callable tagged with a relevant return kind.

ValueReturnKind

Modules

CallContextSensitivity

Provides predicates releated to call-context sensitivity.

DataFlowImplCommonPublic
TypeFlow

Given a call graph for a set of flow paths, this module calculates the type flow between parameter and argument nodes in the cases where it is possible for a type to first be weakened and then strengthened again. When the stronger types at the end-points of such a type flow path are incompatible, the relevant call edges can be excluded as impossible.

Module signatures

Aliases

SndLevelScopeOption

Constructs an Option type that is a disjoint union of the given type and an additional singleton element.

SndLevelScopeOption

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

Parameters