https://issues.dlang.org/show_bug.cgi?id=16980
RazvanN <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |[email protected] Resolution|FIXED |--- --- Comment #8 from RazvanN <[email protected]> --- Slightly modified example: interface A { void foo(); } interface B { void bar(); } interface AB : A, B {} class C : AB { void foo() { assert(false, "Never called!"); } void bar() {} } struct T() { AB ab; ~this() { ab.bar(); // not OK, calls foo(); } } static ~this() // calling the destructor still fails { tinst.__dtor(); } T!() tinst; // NOTE: the destructor of tinst is never run! void main() { T!() dst; dst.ab = new C; dst.ab.bar(); // OK, calls bar() } --
