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;