January 06, 2006
if (someObject == null)
..

The above code compiles, but in my opinion it shouldn't. Naturally the correct syntax for is "if (someObject is null)", but this is an easy mistake for beginners to forget. It also doesn't help that the code generates an access violation. Since code such as the above is always a bug then I think the compiler should just explicitly check for improper comparisons to "null"


January 06, 2006
Ben Phillips wrote:

> if (someObject == null)
> ..
> 
> The above code compiles, but in my opinion it shouldn't. Naturally the correct
> syntax for is "if (someObject is null)", but this is an easy mistake for
> beginners to forget. It also doesn't help that the code generates an access
> violation. Since code such as the above is always a bug then I think the
> compiler should just explicitly check for improper comparisons to "null"

Yes, this could definitely fall under a "you probably didn't mean to"...
Like writing "if (x = 1)", which already gives a friendly warning* in D?

* '=' does not give a boolean result

--anders

PS.
After going through a lot of D code changing "if (someObject !== null)",
to "if (someObject !is null)" I just gave up and wrote "if (someObject)"
Besides being shorter (and much less ugly than !is), it also avoids the
problem above. And it's not like D is going to get boolean comps anyway?