CodeQL library for Ruby
codeql/ruby-all 0.8.15-dev (changelog, source)
Search

Class Ssa::CapturedEntryDefinition

An SSA definition inserted at the beginning of a scope to represent a captured local variable. For example, in

def m x
  y = 0
  x.times do |x|
    y += x
  end
  return y
end

an entry definition for y is inserted at the start of the do block.

Import path

import codeql.ruby.dataflow.SSA

Direct supertypes

Indirect supertypes

Known direct subtypes

Predicates

getLocation

Gets the location of this SSA definition.

toString

Gets a textual representation of this SSA definition.

Inherited predicates

definesAt

Holds if this SSA definition defines v at index i in basic block bb. Phi nodes are considered to be at index -1, while normal variable writes are at the index of the control flow node they wrap.

from Definition
getAFirstRead

Gets a first control-flow node that reads the value of this SSA definition. That is, a read that can be reached from this definition without passing through other reads.

from Definition
getALastRead

Gets a last control-flow node that reads the value of this SSA definition. That is, a read that can reach the end of the enclosing CFG scope, or another SSA definition for the source variable, without passing through any other read.

from Definition
getARead

Gets a control-flow node that reads the value of this SSA definition.

from Definition
getAnUltimateDefinition

Gets a definition that ultimately defines this SSA definition and is not itself a phi node.

from Definition
getBasicBlock

Gets the basic block to which this SSA definition belongs.

from Definition
getControlFlowNode

Gets the control flow node of this SSA definition, if any. Phi nodes are examples of SSA definitions without a control flow node, as they are modeled at index -1 in the relevant basic block.

from Definition
getScope

Gets the scope of this SSA definition.

from Definition
getSourceVariable

Gets the source variable underlying this SSA definition.

from Definition
hasAdjacentReads

Holds if read1 and read2 are adjacent reads of this SSA definition. That is, read2 can be reached from read1 without passing through another read.

from Definition

Charpred