Class BuildCompoundStringInstr

All Implemented Interfaces:
ResultInstr

public class BuildCompoundStringInstr extends NOperandResultBaseInstr
  • Constructor Details

    • BuildCompoundStringInstr

      public BuildCompoundStringInstr(Variable result, Operand[] pieces, org.jcodings.Encoding encoding, int estimatedSize, StringStyle stringStyle, String file, int line)
  • Method Details

    • getPieces

      public Operand[] getPieces()
    • getEncoding

      public org.jcodings.Encoding getEncoding()
    • getInitialSize

      public int getInitialSize()
    • clone

      public Instr clone(CloneInfo ii)
      Description copied from class: Instr
      Clone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope). This might renaming variables and labels to eliminate naming conflicts. The implementation might vary on the cloning mode.
      Specified by:
      clone in class Instr
      Parameters:
      ii - This object manages renaming of variables and labels, handles args and return values.
      Returns:
      a new instruction that can be used in the target scope.
    • encode

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

      public static BuildCompoundStringInstr decode(IRReaderDecoder d)
    • interpret

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

      public void visit(IRVisitor visitor)
      Overrides:
      visit in class Instr
    • isFrozen

      public boolean isFrozen()
    • isChilled

      public boolean isChilled()
    • getFile

      public String getFile()
    • getLine

      public int getLine()
    • simplifyInstr

      public Instr simplifyInstr(IRManager manager)
      This will make an attempt to combine multiple pieces when they are contiguout frozen strings OR immutable literals. It may fail as not all strings can be concatenated together (e.g. mismatched encodings).
      Overrides:
      simplifyInstr in class Instr
      Parameters:
      manager - the IR manager
      Returns:
      the simplified instruction or itself when it cannot be simplified.