[Issue 14815] New: Destructor is not called for static array assignment

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Jul 20 07:54:39 PDT 2015


https://issues.dlang.org/show_bug.cgi?id=14815

          Issue ID: 14815
           Summary: Destructor is not called for static array assignment
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: wrong-code
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: k.hara.pg at gmail.com

From: http://forum.dlang.org/thread/gzbesjblexmtwnigfvgo@forum.dlang.org

uint dtorCount;

struct S {
    uint x;
    void opAssign(const ref S rhs) { assert(false, "Not called"); }
    ~this() { ++dtorCount; }
}


void main() {
    S[2] a;
    a[0].x = 42;

    a = a.init;

    assert(a[0].x == 0); // as expected the value has been reset
    assert(dtorCount == 0); // Passes?!?
}

--


More information about the Digitalmars-d-bugs mailing list