Class CurrentScope

java.lang.Object
org.jruby.ir.operands.Operand
org.jruby.ir.operands.CurrentScope

public class CurrentScope extends Operand
  • Field Details

  • Constructor Details

    • CurrentScope

      public CurrentScope()
  • Method Details

    • getOperandType

      public OperandType getOperandType()
      Specified by:
      getOperandType in class Operand
    • addUsedVariables

      public void addUsedVariables(List<Variable> l)
      Description copied from class: Operand
      Append the list of variables used in this operand to the input list -- force every operand to implement this because a missing implementation can cause bad failures.
      Specified by:
      addUsedVariables in class Operand
    • cloneForInlining

      public Operand cloneForInlining(CloneInfo ii)
      Specified by:
      cloneForInlining in class Operand
    • canCopyPropagate

      public boolean canCopyPropagate()
      Description copied from class: Operand
      Can we replace every use of a variable 'v' that contains the value of this operand with the operand itself? This takes importance when there are at least two uses of 'v' within this scope. Ex: v = [1,2,3]; x = v; y = v In this case, we cannot replace the occurrences of 'v' because we would then get x = [1,2,3]; y = [1,2,3] which would then result in two different array objects being constructed instead of a single one.
      Overrides:
      canCopyPropagate in class Operand
      Returns:
      true if it is safe to copy-propagate the operand.
    • retrieve

      public Object retrieve(ThreadContext context, IRubyObject self, StaticScope currScope, DynamicScope currDynScope, Object[] temp)
      Overrides:
      retrieve in class Operand
    • visit

      public void visit(IRVisitor visitor)
      Overrides:
      visit in class Operand
    • encode

      public void encode(IRWriterEncoder e)
      Overrides:
      encode in class Operand
    • decode

      public static CurrentScope decode(IRReaderDecoder d)
    • toString

      public String toString()
      Overrides:
      toString in class Object