[Issue 19843] Derived class has `__dtor` member if base class implements `~this()`

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 3 13:04:03 UTC 2019


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

Simen Kjaeraas <simen.kjaras at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simen.kjaras at gmail.com

--- Comment #3 from Simen Kjaeraas <simen.kjaras at gmail.com> ---
Basile-z's comment is correct. Proof:

class A {
    ~this() {}
}
class B : A {
}
class C : A {
    ~this() {}
}

// A and B's __dtor are the same:
static assert( __traits(isSame,
    __traits(getMember, A, "__dtor"),
    __traits(getMember, B, "__dtor")));

// A and C's are not:
static assert(!__traits(isSame,
    __traits(getMember, A, "__dtor"),
    __traits(getMember, C, "__dtor")));

--


More information about the Digitalmars-d-bugs mailing list