[Issue 16980] [REG2.072.0] wrong interface called
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Thu Dec 27 12:02:45 UTC 2018
    
    
  
https://issues.dlang.org/show_bug.cgi?id=16980
RazvanN <razvan.nitu1305 at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |razvan.nitu1305 at gmail.com
         Resolution|FIXED                       |---
--- Comment #8 from RazvanN <razvan.nitu1305 at gmail.com> ---
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()
}
--
    
    
More information about the Digitalmars-d-bugs
mailing list