www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 4589] New: comparing two arrays of interfaces for equality segfaults


           Summary: comparing two arrays of interfaces for equality
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: schveiguy yahoo.com

--- Comment #0 from Steven Schveighoffer <schveiguy yahoo.com> 2010-08-05
10:50:34 PDT ---
Example case:

interface I

class C: I
    this(int x)
        this.x = x;
    int x;

    override bool opEquals(Object o)
        if(auto c = cast(C)o)
            return c.x == x;
        return false;

void main()
    I[] arr;
    I[] arr2;
    arr ~= new C(1);
    arr2 ~= new C(1);
    assert(arr == arr2);

Note, the opEquals isn't important, but I also want to ensure that after the
segfault is removed the correct thing is done.  Currently comparing two
interfaces for equality does not work.

I'm unsure whether this is a druntime or a dmd problem.

Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 05 2010