dmd 1.046 and 2.031 releases
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue Jul 7 18:21:47 PDT 2009
Robert Jacques wrote:
> On Tue, 07 Jul 2009 20:48:50 -0400, Andrei Alexandrescu
> <SeeWebsiteForEmail at erdani.org> wrote:
>
>> Robert Jacques wrote:
>>>>> long g;
>>>>> g = e + f; => d = cast(long) e + cast(long) f;
>>>>
>>>> Works today.
>>> Wrong. I just tested this and what happens today is:
>>> g = cast(long)(e+f);
>>> And this is (I think) correct behavior according to the new rules and
>>> not a bug. In the new rules int is special, in this suggestion, it's
>>> not.
>>
>> I think this is a good idea that would improve things. I think,
>> however, it would be troublesome to implement because expressions are
>> typed bottom-up. The need here is to "teleport" type information from
>> the assignment node to the addition node, which is downwards. And I'm
>> not sure how this would generalize to other operators beyond "=".
>>
>>
>> Andrei
>
> Hmm... why can't multiple expressions be built simultaneously and then
> the best chosen once the assignment/function call/etc is reached? This
> would also have the benifet of paving the way for polysemous values &
> expressions.
Anything can be done... in infinite time with infinite resources. :o)
Andrei
More information about the Digitalmars-d-announce
mailing list