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