CodeQL library for Rust
codeql/rust-all 0.2.5-dev (changelog, source)
Search

Module DataFlowImpl

Provides Rust-specific definitions for use in the data flow library.

Import path

import codeql.rust.dataflow.internal.DataFlowImpl

Imports

Cached

A collection of cached types and predicates to be evaluated in the same stage.

MakeImpl<Locations::Location, DataFlowImpl::RustDataFlowGen<RustDataFlowInput>>

Predicates

getPostUpdateReverseStep

Holds if a reverse local flow step should be added from the post-update node for e to the post-update node for the result. preservesValue is true if the step is value preserving.

indexAssignment

Index assignments like a[i] = rhs are treated as *a.index_mut(i) = rhs, so they should in principle be handled by referenceAssignment.

isArgumentForCall

Holds if arg is an argument of call at the position pos.

lambdaCallExpr

Holds if call is a lambda call of kind kind where receiver is the invoked expression.

lambdaCreationExpr

Holds if creation is an expression that creates a lambda of kind kind.

Classes

DataFlowCall
DataFlowCallable

A callable. This includes callables from source code, as well as callables defined in library code.

ReturnKind

A return kind. A return kind describes how a value can be returned from a callable.

Modules

LocalFlow
RustDataFlowGen
RustDataFlowInput
SsaFlow

Provides logic related to SSA.

VariableCapture

Provides logic related to captured variables.

Module signatures

Aliases

LambdaCallKind

The trivial type with a single element.

RustDataFlow