code: def _merge_array(lhs, rhs, type_):
      
      element_type = type_.array_element_type
      if element_type.code in _UNMERGEABLE_TYPES:
          # Individual values cannot be merged, just concatenate
          lhs.list_value.values.extend(rhs.list_value.values)
          return lhs
      lhs, rhs = list(lhs.list_value.values), list(rhs.list_value.values)
  
      # Sanity check: If either list is empty, short-circuit.
      # This is effectively a no-op.
      if not len(lhs) or not len(rhs):
          return Value(list_value=ListValue(values=(lhs + rhs)))
  
      first = rhs.pop(0)
      if first.HasField("null_value"):  # can't merge
          lhs.append(first)
      else:
          last = lhs.pop()
          try:
              merged = _merge_by_type(last, first, element_type)
          except Unmergeable:
              lhs.append(last)
              lhs.append(first)
          else:
              lhs.append(merged)
      return Value(list_value=ListValue(values=(lhs + rhs)))
docs: Helper for '_merge_by_type'.