// https://issues.dlang.org/show_bug.cgi?id=16980 | |
interface A { void foo(); } | |
interface B { void bar(); } | |
interface AB : A, B {} | |
class C : AB { | |
void foo() { assert(false, "Must never be called!"); } | |
void bar() {} | |
} | |
struct T() { | |
AB ab; | |
~this() { | |
ab.bar(); // uses wrong vtable | |
} | |
} | |
T!() tinst; // triggers semantic3 of dtor from Module::semantic(1) | |
void main() | |
{ | |
auto dst = T!()(new C); | |
} |