code: def _swallow_next_tc(self, grid_width, top_tc):
          
          def raise_on_invalid_swallow(next_tc):
              if next_tc is None:
                  raise InvalidSpanError('not enough grid columns')
              if self.grid_span + next_tc.grid_span > grid_width:
                  raise InvalidSpanError('span is not rectangular')
  
          next_tc = self._next_tc
          raise_on_invalid_swallow(next_tc)
          next_tc._move_content_to(top_tc)
          self._add_width_of(next_tc)
          self.grid_span += next_tc.grid_span
          next_tc._remove()
docs: Extend the horizontal span of this `w:tc` element to incorporate the
          following `w:tc` element in the row and then delete that following
          `w:tc` element. Any content in the following `w:tc` element is
          appended to the content of *top_tc*. The width of the following
          `w:tc` element is added to this one, if present. Raises
          |InvalidSpanError| if the width of the resulting cell is greater than
          *grid_width* or if there is no next `<w:tc>` element in the row.