On Saturday, 7 November 2015 at 01:10:01 UTC, Ali Çehreli wrote:
On 11/06/2015 04:56 PM, BBaz wrote:
On Thursday, 5 November 2015 at 13:20:26 UTC, ixid wrote:
[...]
What's inconsistent is the integral promotion of the add
expression
result that stops from 4 bytes int:
---
int a, b;
a += b;
a = a + b;
---
is compiled but according to the specs, a + b result should be
widened
to long:
http://dlang.org/expression.html#AddExpression
(ubyte, byte) until (uint int) should be widened and (long ,
ulong)
wrapped. This behavior would match the specs better.
You say 'long' but according to integer promotions, a and b
should both be promoted to 'int' and the result of 'a + b' is
int:
http://dlang.org/type.html#integer-promotions
Ali
oh...sorry I thought that the widening was done to the follwing
type that's bigger, eg byte->short, short->int.
So no inconsistence at all.