Mea Culpa
Bill Baxter
dnewsgroup at billbaxter.com
Sun Mar 9 00:40:09 PST 2008
Walter Bright wrote:
> 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.
This is spectacular. The new check found 3 of these puppies in my code,
just waiting to bite me.
--bb
More information about the Digitalmars-d
mailing list