This is why Ada disallows empty statements. You have to explicitly write "null;" which is a lot more obvious.
`null` has another meaning in D, that of a null pointer.
D also does not allow the syntax `a < b < c`. C does, to the eternal damnation of anyone who tries it.
Far be it for me to teach the Pope to pray, but would it be reasonably reasonable to make that do the right thing? If your compiler can disallow it, it can detect it, so the grammar is obviously thinkable, and the semantics might be as well.
The value of < is true if the numbers are in monotonically increasing order; otherwise it is false.
- clhsIt could also just be a type error: `<` takes two integers and produces a boolean, so both `(a < b) < c` and `a < (b < c)` would be invalid.
I did think about that, and it's a good question. I did not out of concern for some C code translated to D then mysteriously misbehaving.