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.

Reply via email to