VarUse

/**
* A ControlFlowNode that uses a single RefExpr.
*/

Inherit from ControlFlowNode

Primary key: id: int

schema VarUse extends ControlFlowNode {
  @primary id: int
}

VarUse::getRelativePath

/**
* Get the relative path of this control flow node.
*/
  • Parameter self: VarUse
  • Return string
pub fn getRelativePath(self: VarUse) -> string;

VarUse::getDefinedByLValue

/**
* Gets the LValue nodes that can define this use node.
*/
pub fn getDefinedByLValue(self: VarUse) -> *LValue;

VarUse::getPredecessorCount

/**
* Get the count of immediate predecessor nodes/
*/
  • Parameter self: VarUse
  • Return int
pub fn getPredecessorCount(self: VarUse) -> int;

VarUse::nearestLocalDefinedLValue

/**
* Gets the neareast LValue that defines current use node in same BB.
*/
pub fn nearestLocalDefinedLValue(self: VarUse) -> LValue;

VarUse::getLocation

/**
* Get the location of this control flow node.
*/
pub fn getLocation(self: VarUse) -> Location;

VarUse::existNearestLocalDefinedLValue

/**
* Determine whether there exists a neareast LValue that defines current use node in same BB.
*/
  • Parameter self: VarUse
  • Return bool
pub fn existNearestLocalDefinedLValue(self: VarUse) -> bool;

VarUse::getKindName

/**
* Get the kind name of node.
* If node is ast node, just return ast node kind name; otherwise
* return node name as CfgEntryNode or CfgExitNode.
*/
  • Parameter self: VarUse
  • Return string
pub fn getKindName(self: VarUse) -> string;

VarUse::isExitNode

  • Parameter self: VarUse
  • Return bool
pub fn isExitNode(self: VarUse) -> bool;

VarUse::getSuccessorCount

/**
* Get the count of immediate successor nodes.
*/
  • Parameter self: VarUse
  • Return int
pub fn getSuccessorCount(self: VarUse) -> int;

VarUse::getADef

/**
* Gets VarDef site.
*/
pub fn getADef(self: VarUse) -> *ControlFlowNode;

VarUse::__all__

Data constraint method.

pub fn __all__(db: JavascriptDB) -> *VarUse;

VarUse::getASuccessor

/**
* Get an immediate successor of this node.
*/
pub fn getASuccessor(self: VarUse) -> *ControlFlowNode;

VarUse::getDefinedByLValueRecursive

pub fn getDefinedByLValueRecursive(self: VarUse) -> *LValue;

VarUse::getBasicBlock

/**
* Get the basic block that contains this node.
*/
pub fn getBasicBlock(self: VarUse) -> BasicBlock;

VarUse::isAstNode

  • Parameter self: VarUse
  • Return bool
pub fn isAstNode(self: VarUse) -> bool;

VarUse::getAPredecessor

/**
* Get an immediate predecessor of this node.
*/
pub fn getAPredecessor(self: VarUse) -> *ControlFlowNode;

VarUse::getASuccessorRecursive

/**
* Gets the successor of this node, and query successors recursively
*/
pub fn getASuccessorRecursive(self: VarUse) -> *ControlFlowNode;

VarUse::getText

/**
* Get the text of this control flow node.
*/
  • Parameter self: VarUse
  • Return string
pub fn getText(self: VarUse) -> string;

VarUse::isEntryNode

  • Parameter self: VarUse
  • Return bool
pub fn isEntryNode(self: VarUse) -> bool;

VarUse::getASuccessorWithCompletion

/**
* Get an immediate successor of this node with the given
* type of Completion.
*/
pub fn getASuccessorWithCompletion(self: VarUse, c: Completion) -> *ControlFlowNode;

VarUse::isSyntheticNode

  • Parameter self: VarUse
  • Return bool
pub fn isSyntheticNode(self: VarUse) -> bool;

VarUse::getADefRecursive

pub fn getADefRecursive(self: VarUse) -> *ControlFlowNode;

VarUse::getEnclosingFunction

/**
* Get the enclosing function of node.
* CfgEntryNode or CfgExitNode return belongs to function.
*/
pub fn getEnclosingFunction(self: VarUse) -> FunctionLikeDeclaration;

VarUse::getFile

/**
* Get the file of this control flow node.
*/
pub fn getFile(self: VarUse) -> File;