Class IRException

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

public class IRException extends Operand
  • Field Details

    • RETRY_LocalJumpError

      public static final IRException RETRY_LocalJumpError
    • NEXT_LocalJumpError

      public static final IRException NEXT_LocalJumpError
    • BREAK_LocalJumpError

      public static final IRException BREAK_LocalJumpError
    • RETURN_LocalJumpError

      public static final IRException RETURN_LocalJumpError
    • REDO_LocalJumpError

      public static final IRException REDO_LocalJumpError
  • Constructor Details

  • Method Details

    • getOperandType

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

      public RubyLocalJumpError.Reason getType()
    • getExceptionFromOrdinal

      public static IRException getExceptionFromOrdinal(int ordinal)
    • 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.
    • getException

      public RuntimeException getException(Ruby runtime)
    • 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 IRException decode(IRReaderDecoder d)
    • toString

      public String toString()
      Overrides:
      toString in class Object