Mea Culpa
Walter Bright
newshound1 at digitalmars.com
Tue Mar 4 22:56:24 PST 2008
I know that many of you have asked that the compiler diagnose an error for:
Class C { }
C c;
if (c != null)
...
because it will seg fault at runtime (depending on how opEqual() was
written). I resisted because there is no way, in the general case, to
detect at compile time if one of the operands will evaluate to null or
not. But I finally thought "most of the cases, null is used directly",
so I put in a test in the compiler which rejects class == and != with
the literal null.
I found some errors in my own D code with it.
You guys were right.
The compiler will now also reject things like:
if (c > null)
which make no sense.
More information about the Digitalmars-d
mailing list