assert(obj) is an atrocity
Timon Gehr
timon.gehr at gmx.ch
Tue Nov 8 16:05:44 PST 2011
On 11/08/2011 11:35 PM, Alex Rønne Petersen wrote:
> Hi,
>
> As the title suggests, I'm going to be rather blunt about this.
> assert(obj) testing the invariant *without* doing a null check is insane
> for the following reasons:
>
> 1) It is not what a user expects. It is *unintuitive*.
> 2) assert(!obj) does an is-null check. assert(obj) is a completely
> broken opposite of this.
> 3) No AssertError is thrown, which is the entire point of the built-in
> assert().
> 4) The few added instructions for the null check hardly matter in a
> *debug* build of all things.
>
> I don't mind assert(obj) testing the invariant of obj. In fact, that
> very much makes sense. But please, please, *please* check the object for
> null first.
+1.
More information about the Digitalmars-d
mailing list