On Wednesday, 25 May 2016 at 21:43:19 UTC, Jonathan M Davis wrote:
Unfortunately, it's never been implemented (IIRC due to issues related to AAs having length but not being ranges; the implementation likely needs to check for the range-based functions in addition to length). And as long as 7177 hasn't been implemented, hasSlicing and isRandomAccessRange can't require $, and until they require opDollar, Phobos should never use $ on ranges unless they're guaranteed to be arrays or guaranteed to be ranges that implemented opDollar, and that's really true of _any_ D code at this point, not just Phobos.
Hmmm if an algorithm can make use of opDollar, we should be able to test for it. Maybe extend the tests that include it say hasFullSlicing? Unless something explicitly needs opDollar then it probably shouldn't be included. Someone's already mentioned infinite ranges/arrays, and AA not using $ would cause major breakages.
Are there any major patterns that we can't implement without opDollar? Or are there any that would perform better with it present?