Class Guard
An expression whose value may control the execution of another element.
Import path
import semmle.code.csharp.controlflow.GuardsDirect supertypes
Indirect supertypes
Known direct subtypes
Predicates
| controlsBasicBlock | Holds if basic block |
| controlsNode | Holds if |
| controlsNode | Holds if |
| getAValue | Gets a valid value for this guard. For example, if this guard is a test, then it can have Boolean values |
Inherited predicates
| controls | Holds if this guard evaluating to | from Guard |
| controlsBlock | DEPRECATED: Use | from ControlFlowElement |
| controlsBranchEdge | Holds if this guard evaluating to | from Guard |
| directlyControls | Holds if this guard evaluating to | from PreGuard |
| directlyValueControls | Holds if this guard evaluating to | from PreGuard |
| 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 |
| getAControlFlowEntryNode | Gets a first control flow node executed within this element. | from ControlFlowElement |
| getAControlFlowExitNode | Gets a potential last control flow node executed within this element. | from ControlFlowElement |
| getAControlFlowNode | Gets a control flow node for this element. That is, a node in the control flow graph that corresponds to this element. | from ControlFlowElement |
| 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 |
| getAReachableElement | Gets an element that is reachable from this element. | from ControlFlowElement |
| getAssembly | Gets the assembly that this element was compiled into. | from ControlFlowElement |
| getBasicBlock | Gets the basic block of this guard. For expressions, this is the basic block of the expression itself, and for switch cases, this is the basic block of the expression being compared against the cases. | from PreGuard |
| getChild | Gets the | from ExprOrStmtParent |
| getChildExpr | Gets the | from ExprOrStmtParent |
| getChildStmt | Gets the | from ExprOrStmtParent |
| getControlFlowNode | Gets the control flow node for this element. | from ControlFlowElement |
| getEnclosingCallable | Gets the enclosing callable of this element, if any. | from ControlFlowElement |
| 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 |
| hasBranchEdge | Holds if this guard is the last node in | from PreGuard |
| hasValueBranchEdge | Holds if this guard evaluating to | from PreGuard |
| isEquality | Holds if this guard tests equality between | from PreGuard |
| isLive | Holds if this element is live, that is this element can be reached from the entry point of its enclosing callable. | from ControlFlowElement |
| reachableFrom | Holds if the current element is reachable from | from ControlFlowElement |
| toString | Gets a textual representation of this element. | from Element |
| toStringWithTypes | Gets the full textual representation of this element, including type information. | from Element |
| valueControls | Holds if this guard evaluating to | from Guard |
| valueControlsBranchEdge | Holds if this guard evaluating to | from Guard |