why does isForwardRange work like this?

Jonathan M Davis via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Aug 1 12:59:14 PDT 2014


On Friday, 1 August 2014 at 11:51:55 UTC, Marc Schütz wrote:
> On Friday, 1 August 2014 at 04:52:35 UTC, Jonathan M Davis 
> wrote:
>> On Thursday, 31 July 2014 at 22:21:10 UTC, Vlad Levenfeld 
>> wrote:
>>> Yes, I see the problem now. I can't think of any reason why 
>>> I'd want to make save anything but a function (especially 
>>> since `save` is a verb) but I guess someone out there might 
>>> have a good one.
>>
>> It's Andrei's fault. I'm not quite sure what he was thinking. 
>> But unfortunately, we're stuck with it. So, it's just become 
>> one of D's little quirks that we have to learn and live with.
>
> Can we not at least deprecate it? And while we're at it, the 
> same for `dup` and `idup`?

It would break too much code to change save at this point. 
There's no way that you're going to talk Andrei or Walter into 
changing something like that over whether it makes sense for it 
to be a property or not. That's not the kind of thing that they 
think is important, and you're more likely to get Andrei to try 
and kill of @property again rather than anything useful.

As for dup and idup, they were replaced with functions recently 
(maybe for 2.066 but not 2.065 - i'm not sure when the changes 
were made), so they might actually work with parens now. I'm not 
sure. But since dup and idup aren't being implemented by lots of 
different people like the range API is, changing those doesn't 
risk breaking code where folks made it a variable.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list