On Tuesday, 3 March 2026 at 14:34:56 UTC, user1234 wrote:
I wonder if the following static assertion is intended, i.e "our type system plans this" or if it's an implemenation detail (i.e "we dont thought to that case but it turns out this is like that")

```d
enum e1 = is(typeof(ERROR) == typeof(ERROR));
static assert(!e1); // passes
```

what do you think  ?

I think it's probably accidental that `is(T == U)` short-circuits to `is(T)` if `T` does not exist. If I were to design a "version 3.0" of the D language, starting from scratch, I would not include this behavior.

Unfortunately, it has been around for such a long time, and is depended on by so much existing code, that changing it is not realistically possible, even with editions.

Reply via email to