https://issues.dlang.org/show_bug.cgi?id=23381

--- Comment #2 from Max Samukha <[email protected]> ---
(In reply to Nick Treleaven from comment #1)
> >     int[0] a1 = null; // ok
> 
> I don't think that should work - a static array is not a reference. Just use
> `[]` or init. Especially as there are no compile-time errors when the array
> length is > 0 for null, but there are for `[]`:
> 
> void f()
> {
>     int[1] b = []; // error
>     int[1] a = null; // no error
>     a = []; // error
>     a = null; // no error
> }

If null is implicitly convertable to a dynamic array type, I believe it should
be accepted anywhere a dynamic array is accepted.

void f()
{
>     int[1] a = null; // no error
>     a = null; // no error
}

Those produce a rangle violation error at runtime. If size mismatches can be
detected for [] at compile time, why can't they for 'null'?

--

Reply via email to