I think it's very obscure that the type system creates errors, that with the same input wouldn't generate an error runtime.
I'd like to instead see warnings,
1) when equal and `== gives constant results: 1==1, 1==2 equal( ({1}), ({2}) )
2) when the code flows on constant results:
if (1) ... if (0) ... switch (0) ...
In these cases it's very probable that you didn't want to do that. But to make sure you can do that anyway without warning, how about a pragma to turn off that specific warning?
Some constant flow control is common and is probable futile to warn for, so we should possibly not do that here:
for (;;) ... while (1) ... do ... while (0);
/ Mirar
Previous text:
2003-02-12 16:40: Subject: Search bug ?
Warnings like "comparison is always false" can be useful, but it must not be treated as an error.
/ Niels Möller ()