Mea Culpa
Bill Baxter
dnewsgroup at billbaxter.com
Tue Mar 4 23:22:23 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.
Yea! It helps to eat your own dog food once in a while.
--bb
More information about the Digitalmars-d
mailing list