[Issue 10771] std.typecons.Nullable throws an exception on comparision of null values
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Aug 8 11:16:06 PDT 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10771
--- Comment #2 from QAston <qaston at gmail.com> 2013-08-08 11:16:05 PDT ---
(In reply to comment #1)
> I'm not sure it should. It would blend the notion of *what* the comparison
> compares. For example, in the opposite case:
>
> Nullable!Test a;
> Nullable!Test b = 5;
>
> if (a == b) ... //Legal ?
>
> Arguably, this is a mistake, as a null was used in a comparison. But it now
> simply returns false.
>
> And I don't think it's OK to assert when *one* of both are null, yet not both,
> so I'm not entirely sure about the proposed enhancement.
I forgot to say that I'd expect the case you posted as legal as well.
I thought that this was a simple analogy to how null works in the language, but
apparently at the time of posting I forgot that null is never compared with
opEquals, it uses [is] operator instead.
Phobos doc state that Nullable: "Defines a value paired with a distinctive
"null" state that denotes the absence of a value." I was paying more attention
to the "distinctive state" than to the "absence of a value". Now I see that it
makes no sense to compare absences.
In my case it was useful however, so maybe this may be a candidate for a
separate type or template flag. Anyways comparision semantics should be
mentioned in the doc imo.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list