March 04, 2022

On Friday, 4 March 2022 at 14:00:31 UTC, Dennis wrote:

>

On Friday, 4 March 2022 at 13:09:42 UTC, Paul Backus wrote:

>

As a result, the compiler will not allow you to void-initialize a void[1] in @safe code:

void main() @safe {
    void[1] a = void; // error
}

That's new to me, and the error makes no sense considering you can (implicitly) convert any array to a void[] even in @safe code, so you can still do this:

void main() @safe {
    ubyte[1] x = void;
    void[1] y = x;
}

Yes, I think this is a case of the compiler (and the spec) applying rules more broadly than is strictly necessary, since void-initializing a void[1] cannot actually lead to UB in @safe code on its own.

1 2 3 4
Next ›   Last »