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'? --
