[Issue 23381] null/init are not accepted as initializers of a zero-sized static array
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Oct 4 11:46:09 UTC 2022
https://issues.dlang.org/show_bug.cgi?id=23381
--- Comment #2 from Max Samukha <maxsamukha at gmail.com> ---
(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'?
--
More information about the Digitalmars-d-bugs
mailing list