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);
---

Reply via email to