On Saturday, 8 September 2018 at 03:12:56 UTC, Josphe Brigmo wrote:
auto foo(bool update = false)()
{
    static if(update)
    { }
}

and the compiler, after upgrading to 2.082 from 2.080 now says:

Error: expression `update` of type `void` does not have a boolean value

when update is clearly a bool.

Why the hell is the compiler now thinking update is a void?

1. This code compiles fine in a test app and 2. when I rename update to something else it works fine.

2. There is no other use of update in the entire module(not that it should matter)

Seems this is a compiler bug but only has a problem in context. Remember, it worked find before I updated dmd and there is no reason why it shouldn't work.

- put

`pragma(msg, __FILE_FULL_PATH__ ~ "(" ~ __LINE__.stringof ~ "):" ~
    typeof(return).stringof);`

in your update function.

- recompile.
- look at the compiler output

You should be sure at this point if the problem comes from your update function of from the recent addition in object.d

Reply via email to