On Sunday, 29 May 2022 at 01:35:23 UTC, frame wrote:
Is there a compiler switch to catch this kind of error?

```d
ulong v = 1;
writeln(v > -1);
```

IMHO the compiler should bail a warning if it sees a logic comparison between signed and unsigned / different integer sizes. There is 50% chance that a implicit conversion was not intended.

We have a solution for this problem in bugzilla:
https://issues.dlang.org/show_bug.cgi?id=259

This would allow for the above compare to simply work with all integer types signed or unsigned and produce always the correct result.

It was rejected because it would break old code that rely on this misbehaviour (and even worse: the behaviour would be different from what C does, oh my god!!)

Reply via email to