[Mono-dev] CS0019 for value type != null

Marek Safar marek.safar at seznam.cz
Tue Apr 8 05:14:11 EDT 2008


Hello Casey,
>
> I've noticed that on a recent SVN build of mono, I get a CS0019 error if
> I try to compare a value type against null. E.g.:
>
>   DateTime dt;
>   if (dt != null)
>     Console.WriteLine(dt);
>
> As far as I can tell, this is the correct behavior, since a value type
> can't be null. I'm concerned, though, because this behavior seems to
> have been introduced recently in SVN, AND it looks like MS's compiler
> doesn't reject this statement (well, I haven't seen it accept it, but
> this is existing code which apparently compiles fine under Visual
> Studio).
>
This code compiles correctly with the SVN HEAD version.

>
> So, my question is, what's going on here? Does anyone know what the
> semantics are if the compiler generates a conditional based on a
> `valuetype CMP null' test?
>
This particular comparison is in-lined to false constant.

Regards,
Marek


More information about the Mono-devel-list mailing list