class SyntaxTree::YARV::OptPlus


~~~
2 + 3
~~~ruby
### Usage
receiver and the argument off the stack and pushes on the result.
both operands are integers, floats, strings, or arrays. It pops both the
that occurs when the ‘+` operator is used. There are fast paths for if
`opt_plus` is a specialization of the `opt_send_without_block` instruction
### Summary

def ==(other)

def ==(other)
  other.is_a?(OptPlus) && other.calldata == calldata
end

def call(vm)

def call(vm)
  canonical.call(vm)
end

def canonical

def canonical
  Send.new(calldata, nil)
end

def deconstruct_keys(_keys)

def deconstruct_keys(_keys)
  { calldata: calldata }
end

def disasm(fmt)

def disasm(fmt)
  fmt.instruction("opt_plus", [fmt.calldata(calldata)])
end

def initialize(calldata)

def initialize(calldata)
  @calldata = calldata
end

def length

def length
  2
end

def pops

def pops
  2
end

def pushes

def pushes
  1
end

def to_a(_iseq)

def to_a(_iseq)
  [:opt_plus, calldata.to_h]
end