class C {
void f();
void f() {}
}
An overload set of two elements pointing to the same function is created. This results in messed-up vtbl containing duplicate entries:
class D : C {
alias f = C.f;
override void f() {
}
}
1. 'alias' is required because of the abnormal overload set.
2. Only the first pointer to f is overridden in D's vtbl.
C c = new D;
c.f() // second pointer in D's vtbl is used (C.f)
Related to bug 8108.
Comment #1 by robert.schadek — 2024-12-13T18:49:23Z