[Issue 9218] New: [2.061] Correct signature of struct opCmp no longer accepts enum structs

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Dec 27 10:00:41 PST 2012


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

           Summary: [2.061] Correct signature of struct opCmp no longer
                    accepts enum structs
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: rejects-valid
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: siegelords_abode at yahoo.com


--- Comment #0 from siegelords_abode at yahoo.com 2012-12-27 10:00:40 PST ---
This code worked fine in 2.060, errors with 2.061 beta 1:

struct A
{
    enum zero = A(); // Error: A() is not an lvalue

    int opCmp(const ref A a) const
    //int opCmp(A a)
    {
        return 1;
    }
}

void main()
{
    A a;
    auto b = a > A.zero;
    assert(typeid(a).xopCmp !is null);
}

Obviously I could use a different signature for opCmp (e.g. the one I commented
out) but then the assert below will fail, as only the correct signature of
opCmp is accepted. Fixing either this bug or
http://d.puremagic.com/issues/show_bug.cgi?id=8561 would be good enough for me.

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