On 09/22/2013 12:36 AM, Walter Bright wrote:
On 9/21/2013 3:11 PM, Maxim Fomin wrote:
On Saturday, 21 September 2013 at 22:06:07 UTC, Walter Bright wrote:
On 9/21/2013 2:40 PM, Maxim Fomin wrote:
Thanks, that is clear. Unfortunately, I cannot say that the
explanation improves
my attidute to the language - dmd still breaks too often code and some
significant features (like AAs, scope, shared) are at risk to be
seriously
changed which is a serious problem to the user.

I'm curious - was there a logic bug in your code with the overflow,
or had
that been the intended behavior?

This was bug in gtkd sources when I tried to compile its most recent
version
(tried even from github) with git-head dmd. I think it is a problem of
gtkd
developers rather than dmd.

Ok, so it found a latent bug in the source code - I don't think that's a
good example of dmd being unstable - it was a good change.

I've reduced the code causing the error to this:
```
public enum GTokenType
{
        NONE,
}

public enum GtkRcTokenType
{
        INVALID = GTokenType.NONE,
        INCLUDE,
}
```

In this case the value of INVALID + 1 isn't large enough the overflow an int.

In the actual code:
https://github.com/gtkd-developers/GtkD/blob/master/src/gtkc/glibtypes.d#L1310
Setting NONE to a value lower than 87 makes it so the code compiles without error, which only makes things weirder.

--
Mike Wey

Reply via email to