D-Programming-Language/phobos — pull request #1475 by monarchdodra (2013-08-14 17:02:14+00:00)
Title: Fix Issue 8866 - Splitter(R1, R2) CANNOT be bidirectional.

http://d.puremagic.com/issues/show_bug.cgi?id=8866

The problem is that when the separator is a range, two separators may overlap, in which case the range's result depends on the direction it is being iterated (which is not acceptable).

Correctly fixing this would be horrendously complicated. I think it is better to simply not provide bidirectional functionality for splitter!(Range Range).

Besides, arguably, since bidirectional iteration is not free (even when un-used), it should be opt-in, via `splitterBidirectional`, so we'll have to deprecate sooner or later.

Not that it matters much, as I don't think anybody iterates both ends at once, so anybody wanting to split from the right can just call splitter(myRange.retro(), mySpe.retro) instead.