code: def _concat_rangeindex_same_dtype(indexes):
      
      from pandas import Int64Index, RangeIndex
  
      start = step = next = None
  
      # Filter the empty indexes
      non_empty_indexes = [obj for obj in indexes if len(obj)]
  
      for obj in non_empty_indexes:
  
          if start is None:
              # This is set by the first non-empty index
              start = obj._start
              if step is None and len(obj) > 1:
                  step = obj._step
          elif step is None:
              # First non-empty index had only one element
              if obj._start == start:
                  return _concat_index_same_dtype(indexes, klass=Int64Index)
              step = obj._start - start
  
          non_consecutive = ((step != obj._step and len(obj) > 1) or
                             (next is not None and obj._start != next))
          if non_consecutive:
              return _concat_index_same_dtype(indexes, klass=Int64Index)
  
          if step is not None:
              next = obj[-1] + step
  
      if non_empty_indexes:
          # Get the stop value from "next" or alternatively
          # from the last non-empty index
          stop = non_empty_indexes[-1]._stop if next is None else next
          return RangeIndex(start, stop, step)
  
      # Here all "indexes" had 0 length, i.e. were empty.
      # In this case return an empty range index.
      return RangeIndex(0, 0)
docs: Concatenates multiple RangeIndex instances. All members of "indexes" must
      be of type RangeIndex; result will be RangeIndex if possible, Int64Index
      otherwise. E.g.:
      indexes = [RangeIndex(3), RangeIndex(3, 6)] -> RangeIndex(6)
      indexes = [RangeIndex(3), RangeIndex(4, 6)] -> Int64Index([0,1,2,4,5])