CodeQL library for C#
codeql/csharp-all 3.1.1 (changelog, source)
Search

Class ControlFlowElement

A program element that can possess control flow. That is, either a statement or an expression.

A control flow element can be mapped to a control flow node (ControlFlow::Node) via getAControlFlowNode(). There is a one-to-many relationship between control flow elements and control flow nodes. This allows control flow splitting, for example modeling the control flow through finally blocks.

Import path

import csharp

Direct supertypes

Indirect supertypes

Known direct subtypes

Predicates

controlsBlock

Holds if basic block controlled is controlled by this control flow element with conditional value s. That is, controlled can only be reached from the callable entry point by going via the s edge out of some basic block ending with this element.

getAControlFlowEntryNode

Gets a first control flow node executed within this element.

getAControlFlowExitNode

Gets a potential last control flow node executed within this element.

getAControlFlowNode

Gets a control flow node for this element. That is, a node in the control flow graph that corresponds to this element.

getAReachableElement

Gets an element that is reachable from this element.

getAssembly

Gets the assembly that this element was compiled into.

getEnclosingCallable

Gets the enclosing callable of this element, if any.

isLive

Holds if this element is live, that is this element can be reached from the entry point of its enclosing callable.

reachableFrom

Holds if the current element is reachable from src.

Inherited predicates

fromLibrary

Holds if this element is from an assembly.

from Element
fromSource

Holds if this element is from source code.

from Element
getAChild

Gets a child of this element, if any.

from Element
getAChildExpr

Gets a child expression of this element, if any.

from ExprOrStmtParent
getAChildStmt

Gets a child statement of this element, if any.

from ExprOrStmtParent
getALocation

Gets a location of this element, including sources and assemblies.

from Element
getAPrimaryQlClass

Gets the name of a primary CodeQL class to which this element belongs.

from Element
getChild

Gets the ith child of this element (zero-based).

from ExprOrStmtParent
getChildExpr

Gets the ith child expression of this element (zero-based).

from ExprOrStmtParent
getChildStmt

Gets the ith child statement of this element (zero-based).

from ExprOrStmtParent
getFile

Gets the file containing this element.

from Element
getIndex

Gets the index of this element among its parent’s other children (zero-based).

from Element
getLocation

Gets the location of this element. Where an element has locations in source and assemblies, choose the source location. If there are multiple assembly locations, choose only one.

from Element
getNumberOfChildren

Gets the number of children of this element.

from Element
getParent

Gets the parent of this element, if any.

from Element
getPrimaryQlClasses

Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.

from Element
toString

Gets a textual representation of this element.

from Element
toStringWithTypes

Gets the full textual representation of this element, including type information.

from Element