Annoyance with new integer promotion deprecations

Manu turkeyman at gmail.com
Sun Feb 18 01:09:57 UTC 2018


On 5 February 2018 at 11:22, H. S. Teoh via Digitalmars-d <
digitalmars-d at puremagic.com> wrote:

> Code:
>
>         struct S {
>                 byte[2] x;
>         }
>         void main() {
>                 S s, t;
>                 s.x = [ 1, -1 ];                // OK
>                 t.x = [ -s.x[0], -s.x[1] ];     // NG (line 7)
>         }
>
>
> Compiler says:
>         /tmp/test.d(7): Deprecation: integral promotion not done for
> `-s.x[0]`, use '-transition=intpromote' switch or `-cast(int)(s.x[0])`
>         /tmp/test.d(7): Deprecation: integral promotion not done for
> `-s.x[1]`, use '-transition=intpromote' switch or `-cast(int)(s.x[1])`
>
>
> Why should I need to explicitly cast to int only to reassign it back to
> byte?!  This is ridiculous.


Seriously, WTF is going on here?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20180217/657859c4/attachment.html>


More information about the Digitalmars-d mailing list