CodeQL library for C#
Search

Class NestedCompletion

A nested completion. For example, in

void M(bool b1, bool b2)
{
    try
    {
        if (b1)
           throw new Exception();
    }
    finally
    {
        if (b2)
            System.Console.WriteLine("M called");
    }
}

b2 has an outer throw completion (inherited from throw new Exception) and an inner false completion. b2 also has a (normal) true completion.

Import path

import semmle.code.csharp.controlflow.internal.Completion

Direct supertypes

Indirect supertypes

Known direct subtypes

    Fields

    Predicates

    getAMatchingSuccessorType

    Gets a successor type that matches this completion.

    getAnInnerCompatibleCompletion

    Gets a completion that is compatible with the inner completion.

    getInnerCompletion

    Gets the inner completion. This is either the inner completion, when the completion is nested, or the completion itself.

    getNestLevel

    Gets the level of this nested completion.

    getOuterCompletion

    Gets the outer completion. This is either the outer completion, when the completion is nested, or the completion itself.

    toString

    Gets a textual representation of this completion.

    Inherited predicates

    continuesLoop

    Holds if this completion will continue a loop when it is the completion of a loop body.

    from Completion
    isValidFor

    Holds if this completion is valid for control flow element cfe.

    from Completion

    Charpred