On Monday, 23 June 2014 at 18:32:38 UTC, Steven Schveighoffer wrote:
On Sun, 22 Jun 2014 08:23:45 -0400, Uranuz <neura...@gmail.com> wrote:

If these rules are not so clear and have some exceptions (but I don't understand why they are needed) then some documentation needed about this.

See integer promotion rules:

http://dlang.org/type.html#Integer%20Promotions

And the section below it.

-Steve

I see these rules but when I compile following code and it fails with error it looks VERY stupid.

import std.stdio;

void main()
{
        ubyte a = 15;
        ubyte b = 10;
        
ubyte c = a + b; //What is happening there?! AAAAARGH! Are you joking?!
        
}

Compilation output:
/d837/f382.d(9): Error: cannot implicitly convert expression (cast(int)a + cast(int)b) of type int to ubyte

I'm just crazy about it! How could it happen?!

Reply via email to