More magical AA semantics
deadalnix
deadalnix at gmail.com
Fri Jan 11 02:23:46 PST 2013
On Friday, 11 January 2013 at 10:16:28 UTC, Jens Mueller wrote:
> deadalnix wrote:
>> On Friday, 11 January 2013 at 08:55:55 UTC, Bernard Helyer
>> wrote:
>> >I completely agree. Doesn't the spec say that relying on
>> >the order of assignment evaluation is undefined?
>>
>> After a long discussion with Andrei, it seems that it is left
>> to
>> right.
>
> Then the spec should be fixed.
>
> unittest
> {
> int a = 0;
> ++a = a;
> assert(a == 1);
> }
>
++a isn't supposed to be an lvalue (it is not assignable).
> Don't know though whether you find it surprising that the above
> code
> passes? But whether it is left to right or right to left does
> not matter
> that much. At least it's defined and you can internalize it.
> The more I think about the more sense it makes to have it left
> to right.
>
It shouldn't pass as the entry has never been assigned when
computing the value.
More information about the Digitalmars-d
mailing list