[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 10:31:04 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10771


monarchdodra at gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |monarchdodra at gmail.com


--- Comment #1 from monarchdodra at gmail.com 2013-08-08 10:31:03 PDT ---
(In reply to comment #0)
> The following code should work and assert should pass.
> On dmd 2.063.2 assert "Called `get' on null Nullable!Test" occurs instead
> ---
> import std.typecons;
> void main()
> {
>     struct Test{
>         int a;
>     }
>     Nullable!Test a;
>     Nullable!Test b;
>     assert(a==b);
> }
> ---
> 
> So, IMO Nullable!T needs opEquals implemented.

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.

-- 
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