Module Completion
INTERNAL: Do not use.
Provides classes representing control flow completions.
A completion represents how a statement or expression terminates.
There are six kinds of completions: normal completion,
return
completion, break
completion, continue
completion,
goto
completion, and throw
completion.
Normal completions are further subdivided into Boolean completions and all other normal completions. A Boolean completion adds the information that the expression terminated with the given boolean value due to a subexpression terminating with the other given Boolean value. This is only relevant for conditional contexts in which the value controls the control-flow successor.
Goto successors are further subdivided into label gotos, case gotos, and default gotos.
Import path
import semmle.code.csharp.controlflow.internal.Completion
Imports
csharp | The default C# QL library. |
Predicates
assertionCompletion | Gets a valid completion when argument |
foreachEmptiness | Holds if |
switchMatching | Holds if |
Classes
BooleanCompletion | A completion that represents evaluation of an expression with a Boolean value. |
BreakCompletion | A completion that represents evaluation of a statement or an expression resulting in a break (in a loop or in a |
Completion | A completion of a statement or an expression. |
ConditionalCompletion | A completion that represents evaluation of an expression, whose value determines the successor. Either a Boolean completion ( |
ContinueCompletion | A completion that represents evaluation of a statement or an expression resulting in a loop continuation (a |
EmptinessCompletion | A completion that represents evaluation of an emptiness test, for example a test in a |
ExitCompletion | A completion that represents evaluation of a statement or an expression resulting in a program exit, for example |
FalseCompletion | A Boolean |
GotoCompletion | A completion that represents evaluation of a statement or an expression resulting in a |
MatchingCompletion | A completion that represents matching, for example a |
NestedBreakCompletion | A nested completion for a loop that exists with a |
NestedCompletion | A nested completion. For example, in |
NormalCompletion | A completion that represents normal evaluation of a statement or an expression. |
NullnessCompletion | A completion that represents evaluation of an expression that is either |
ReturnCompletion | A completion that represents evaluation of a statement or an expression resulting in a return from a callable. |
SimpleCompletion | A simple (normal) completion. |
ThrowCompletion | A completion that represents evaluation of a statement or an expression resulting in a thrown exception. |
TrueCompletion | A Boolean |