Class DataFlow :: BarrierGuard
DEPRECATED: Use BarrierGuard
module instead.
A guard that validates some expression.
To use this in a configuration, extend the class and provide a
characteristic predicate precisely specifying the guard, and override
checks
to specify what is being validated and in which branch.
It is important that all extending classes in scope are disjoint.
Import path
import csharp
Direct supertypes
Indirect supertypes
Known direct subtypes
Predicates
checks |
Holds if this guard validates |
getAGuardedNode |
Gets a node guarded by this guard. |
Inherited predicates
controlsBasicBlock |
Holds if basic block |
from Guard |
controlsBlock |
Holds if basic block |
from ControlFlowElement |
controlsNode |
Holds if |
from Guard |
controlsNode |
Holds if |
from Guard |
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 Expr |
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 |
getAValue |
Gets a valid value for this guard. For example, if this guard is a test, then it can have Boolean values |
from Guard |
getAnnotatedType |
Gets the annotated type of this expression. |
from Expr |
getAssembly |
Gets the assembly that this element was compiled into. |
from ControlFlowElement |
getChild |
Gets the |
from ExprOrStmtParent |
getChildExpr |
Gets the |
from ExprOrStmtParent |
getChildStmt |
Gets the |
from ExprOrStmtParent |
getEnclosingCallable |
Gets the enclosing callable of this expression, if any. |
from Expr |
getEnclosingStmt |
Gets the enclosing statement of this expression, if any. |
from Expr |
getExplicitArgumentName |
Gets the explicit parameter name used to pass this expression as an argument for, if any. For example, if this expression is |
from Expr |
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 |
getLanguage |
Gets the “language” of this program element, as defined by the extension of the filename. For example, C# has language “cs”, and Visual Basic has language “vb”. |
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 | from Expr | |
getPrimaryQlClasses |
Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs. |
from Element |
getType |
Gets the type of this expression. |
from Expr |
getValue |
Gets the value of this expression, if any |
from Expr |
hasMaybeNullFlowState |
Holds if the nullable flow state of this expression may be null. |
from Expr |
hasNotNullFlowState |
Holds if the nullable flow state of this expression is not null. |
from Expr |
hasValue |
Holds if this expression has a value. |
from Expr |
isEquality |
Holds if this guard is an equality test between |
from Guard |
isImplicit |
Holds if this expression is generated by the compiler and does not appear explicitly in the source code. |
from Expr |
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 |
stripCasts |
Gets an expression that is the result of stripping (recursively) all implicit and explicit casts from this expression, if any. For example, the result is |
from Expr |
stripImplicitCasts |
Gets an expression that is the result of stripping (recursively) all implicit casts from this expression, if any. |
from Expr |
toString |
Gets a textual representation of this element. |
from Element |
toStringWithTypes |
Gets the full textual representation of this element, including type information. |
from Element |