On Sunday, 24 May 2020 at 12:12:31 UTC, bauss wrote:
Is there a way to do that?
Since the following are both true:
int[] a = null;
int[] b = [];
assert(a is null);
assert(!a.length);
assert(b is null);
assert(!b.length);
What I would like is to tell that b is an empty array and a is
a null array.
Yes you can tell: your `is null` check actually works, the part
that doesn't work is that `int[] b = []` is initializing b to
null.
Here's an example:
---
int[0] emptyArray;
int[] a = null; // a.ptr is null, a.length is 0
int[] b = emptyArray[]; // b.ptr is non-null, b.length is 0
assert(a is null);
assert(!a.length);
assert(b !is null);
assert(!b.length);
---