'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.'

def _swallow_next_tc(self, grid_width, top_tc):

    def raise_on_invalid_swallow(next_tc):
        if (next_tc is None):
            raise InvalidSpanError(u'not    enough    grid    columns')
        if ((self.grid_span + next_tc.grid_span) > grid_width):
            raise InvalidSpanError(u'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()
