class YARP::DesugarVisitor

def desugar_or_write_node(node, read_class, write_class, *arguments)

Desugar `x ||= y` to `x || x = y`
def desugar_or_write_node(node, read_class, write_class, *arguments)
  OrNode.new(
    read_class.new(*arguments, node.name_loc),
    write_class.new(*arguments, node.name_loc, node.value, node.operator_loc, node.location),
    node.operator_loc,
    node.location
  )
end