Module ControlFlow::Internal

INTERNAL: Do not use.

Import path

import csharp

Predicates

case2aFromRank

Case 2a.

case2aSomeAtRank

Gets a split that should be in succSplits at rank rnk.

first

Gets the first element executed within control flow element cfe.

getAControlFlowEntryNode

Gets a first control flow element executed within cfe.

getAControlFlowExitNode

Gets a potential last control flow element executed within cfe.

getASuccessorByType

Gets a successor node of a given flow type, if any.

getAThrownException

Gets an exception type that is thrown by cfe in the block of try statement ts. Throw completion c matches the exception type.

last

Gets a potential last element executed within control flow element cfe, as well as its completion.

lastTryStmtFinally
succ

Gets a control flow successor for control flow element cfe, given that cfe finishes with completion c.

succEntry

Gets the control flow element that is first executed when entering callable c.

succEntrySplits

Holds if succ with splits succSplits is the first element that is executed when entering callable pred.

succExit

Gets the callable that is exited when cfe finishes with completion c, if any.

succExitSplits

Holds if pred with splits predSplits can exit the enclosing callable succ with type t.

succSplits

Holds if succ with splits succSplits is a successor of type t for pred with splits predSplits.

Classes

AccessorWrite

An expression that writes via an accessor call, for example x.Prop = 0, where Prop is a property.

SplitControlFlowElement

A control flow element that is split into multiple control flow nodes.

SplitImpl

A split for a control flow element. For example, a tag that determines how to continue execution after leaving a finally block.

SplitInternal
SplitKind

A split kind. Each control flow node can have at most one split of a given kind.

Splits

A set of control flow node splits. The set is represented by a list of splits, ordered by ascending rank.

Datatypes

TNode

Internal representation of control flow nodes in the control flow graph. The control flow graph is pruned for unreachable nodes.

Modules

BooleanSplitting
ExceptionHandlerSplitting
FinallySplitting
InitializerSplitting
LoopUnrollingSplitting
Reachability

Provides logic for calculating reachable control flow nodes.

Successor

Provides auxiliary classes and predicates used to construct the basic successor relation on control flow elements.