[Issue 3367] New: Regression: assignment at declaration no longer supports opAssign or ctor overloads

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Oct 5 20:45:11 PDT 2009


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

           Summary: Regression: assignment at declaration no longer
                    supports opAssign or ctor overloads
           Product: D
           Version: 2.033
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: sandford at jhu.edu


--- Comment #0 from Rob Jacques <sandford at jhu.edu> 2009-10-05 20:45:10 PDT ---
In DMD 2.032, when a struct was assigned to at it's declaration point, opAssign
overloads were called if other alternative were not available. In DMD 2.033,
neither opAssign or ctor overloads are called, only static opCall works

struct Foo {
    int x;
//    static opCall(int v) { // Un-comment this and the below works
//        Foo f;
//        f.x = v;
//        return f;
//    }
    this(int v){ x = v; }
    void opAssign(int v){
        x = v;
        return this;
    }
}

void main(char[][] args) {

    int y = 5;
    Foo f = y;  // fails
    f = y;      // okay
    f = Foo(y); // okay

}

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