class RubyIndexer::Collector

def handle_multi_write_node(node)

def handle_multi_write_node(node)
  value = node.value
  values = value.is_a?(Prism::ArrayNode) && value.opening_loc ? value.elements : []
  [*node.lefts, *node.rest, *node.rights].each_with_index do |target, i|
    current_value = values[i]
    # The moment we find a splat on the right hand side of the assignment, we can no longer figure out which value
    # gets assigned to what
    values.clear if current_value.is_a?(Prism::SplatNode)
    case target
    when Prism::ConstantTargetNode
      add_constant(target, fully_qualify_name(target.name.to_s), current_value)
    when Prism::ConstantPathTargetNode
      add_constant(target, fully_qualify_name(target.slice), current_value)
    end
  end
end