Class VarDef
A ControlFlowNode that defines (that is, initializes or updates) variables or properties.
The following program elements are definitions:
- assignment expressions (
x = 42
) - update expressions (
++x
) - variable declarators with an initializer (
var x = 42
) - for-in and for-of statements (
for (x in o) { ... }
) - parameters of functions or catch clauses (
function (x) { ... }
) - named functions (
function x() { ... }
) - named classes (
class x { ... }
) - import specifiers (
import { x } from 'm'
)
Note that due to destructuring, a single VarDef
may define multiple
variables and/or properties; for example, { x, y: z.p } = e
defines variable
x
as well as property p
of z
.
Import path
import javascript
Direct supertypes
Indirect supertypes
Known direct subtypes
Predicates
getAVariable | Gets a variable defined by this node, if any. |
getDestructuringSource | Gets the source that this definition destructs, that is, the right hand side of a destructuring assignment. |
getSource | Gets the source of this definition, that is, the data flow node representing the value that this definition assigns to its target. |
getTarget | Gets the target of this definition, which is either a simple variable reference, a destructuring pattern, or a property access. |
isOverwritten | Holds if this definition of |
Inherited predicates
describeControlFlowNode | For internal use. | from ControlFlowNode |
getAPredecessor | Gets a node preceding this node in the CFG. | from ControlFlowNode |
getAPrimaryQlClass | Gets the primary QL class for the Locatable. | from Locatable |
getASuccessor | Gets a node succeeding this node in the CFG. | from ControlFlowNode |
getBasicBlock | Gets the basic block this node belongs to. | from ControlFlowNode |
getContainer | Gets the function or toplevel to which this node belongs. | from NodeInStmtContainer |
getEndLine | Gets the line on which this element ends. | from Locatable |
getFile | Gets the file this program element comes from. | from Locatable |
getLocation | Gets this element’s location. | from Locatable |
getNumLines | Gets the number of lines covered by this element. | from Locatable |
getPrimaryQlClasses | Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs. | from Locatable |
getStartLine | Gets the line on which this element starts. | from Locatable |
isAFinalNode | Holds if this is a final node, that is, a CFG node where execution of a toplevel or function terminates. | from ControlFlowNode |
isAFinalNodeOfContainer | Holds if this is a final node of | from ControlFlowNode |
isBranch | Holds if this is a node with more than one successor. | from ControlFlowNode |
isJoin | Holds if this is a node with more than one predecessor. | from ControlFlowNode |
isStart | Holds if this is a start node, that is, the CFG node where execution of a toplevel or function begins. | from ControlFlowNode |
isUnreachable | Holds if this node is unreachable, that is, it has no predecessors in the CFG. Entry nodes are always considered reachable. | from ControlFlowNode |
toString | Gets a textual representation of this element. | from Locatable |