On Tuesday, 3 March 2026 at 14:46:56 UTC, Paul Backus wrote:
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.

So if I follow your reasoning, you think it's an implementation accident. Actually there's an aspect that makes the current D behavior absolutly correct: that can be seen as comparing two NaN.

Reply via email to