class Prism::DesugarOrWriteNode

:nodoc:

def compile

Desugar `x ||= y` to `x || x = y`
def compile
  or_node(
    location: node.location,
    left: public_send(read_class, location: node.name_loc, **arguments),
    right: public_send(
      write_class,
      location: node.location,
      **arguments,
      name_loc: node.name_loc,
      value: node.value,
      operator_loc: node.operator_loc
    ),
    operator_loc: node.operator_loc
  )
end

def initialize(node, default_source, read_class, write_class, **arguments)

def initialize(node, default_source, read_class, write_class, **arguments)
  @node = node
  @default_source = default_source
  @read_class = read_class
  @write_class = write_class
  @arguments = arguments
end