Partager via


Microsoft.CodeAnalysis.FlowAnalysis Namespace

Classes

BasicBlock

Represents a basic block in a ControlFlowGraph with a sequence of Operations. Once a basic block is entered, all operations in it are always executed. Optional BranchValue, if non-null, is evaluated after the Operations. Control flow leaves the basic block by taking either the ConditionalSuccessor branch or the FallThroughSuccessor branch.

ControlFlowBranch

Represents a control flow branch from a Source basic block to a Destination basic block in a ControlFlowGraph.

ControlFlowGraph

Control flow graph representation for a given executable code block OriginalOperation. This graph contains a set of BasicBlocks, with an entry block, zero or more intermediate basic blocks and an exit block. Each basic block contains zero or more Operations and explicit ControlFlowBranch(s) to other basic block(s).

ControlFlowGraphExtensions
ControlFlowRegion

Encapsulates information about regions of BasicBlocks in a ControlFlowGraph. Regions can overlap, but never cross each other boundaries.

Structs

CaptureId

Capture Id is an opaque identifier to represent an intermediate result from an IFlowCaptureOperation.

Interfaces

ICaughtExceptionOperation

Represents a exception instance passed by an execution environment to an exception filter or handler. This node is produced only as part of a ControlFlowGraph.

IFlowAnonymousFunctionOperation

Represents an anonymous function operation in context of a ControlFlowGraph.

Current usage:

  1. C# lambda expression
  2. VB anonymous delegate expression

A ControlFlowGraph for the body of the anonymous function is available from the enclosing ControlFlowGraph.
IFlowCaptureOperation

Represents that an intermediate result is being captured. This node is produced only as part of a ControlFlowGraph.

IFlowCaptureReferenceOperation

Represents a point of use of an intermediate result captured earlier. The fact of capturing the result is represented by IFlowCaptureOperation. This node is produced only as part of a ControlFlowGraph.

IIsNullOperation

Represents result of checking whether the Operand is null. For reference types this checks if the Operand is a null reference, for nullable types this checks if the Operand doesn’t have a value. The node is produced as part of a flow graph during rewrite of ICoalesceOperation and IConditionalAccessOperation nodes.

IStaticLocalInitializationSemaphoreOperation

Represents the check during initialization of a VB static local that is initialized on the first call of the function, and never again. If the semaphore operation returns true, the static local has not yet been initialized, and the initializer will be run. If it returns false, then the local has already been initialized, and the static local initializer region will be skipped. This node is produced only as part of a ControlFlowGraph.

Enums

BasicBlockKind

BasicBlock kind.

ControlFlowBranchSemantics

Semantics associated with a ControlFlowBranch.

ControlFlowConditionKind

Represents kind of conditional branch from a BasicBlock.

ControlFlowRegionKind

Defines kinds of regions that can be present in a ControlFlowGraph