Am 26.08.2011, 11:32 Uhr, schrieb bearophile <bearophileh...@lycos.com>:
There is one more special case that we plan to disallow, that's not in
DMD yet:
5409 Disallow (!x & y)
http://d.puremagic.com/issues/show_bug.cgi?id=5409
Is (!x & y) an issue or is it rather people omitting spaces in their code
!x&y ? I can't imagine anyone will assume that !x & y negates the whole
expression. At least a kernel developer should know the operator
precedence. Are there actually lots of kernel bugs related to the version
with spaces?
I think the warning you get in many languages/IDEs when you write "if (x =
y)" is ok. It tells you to wrap that expression in parenthesis if you
really meant to do an assignment. It is a very special case that is not
common among all imperative languages and is easily overlooked, especially
if you worked with a language that uses = for comparisons.
If in the above case we are forced to write ((!x) & y) that's ... LISP. At
least I'm not convinced by what is in the bug report.