You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This directly contradicts the interface [spec](https://dlang.org/spec/interface.html), pt. 8:
"Classes that inherit from an interface may not override final or static interface member functions."
interface D
{
void bar();
static void foo() { }
}
class C : D
{
void bar() { } // ok
void foo() { } // BUG: this is ok, but should error because we cannot override static D.foo()
}
The text was updated successfully, but these errors were encountered:
I don't know if the report is valid.
1. You can still call the interface version of foo, e.g `(new C).D.foo();`2. C.foo() is not virtual and does not call the inherited D.foo().
Because 2, the specs are respected. It's not an override but rather a case of hijacking.
Eduard Staniloiu (@edi33416) reported this on 2019-03-27T13:34:38Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=19767
CC List
Description
The text was updated successfully, but these errors were encountered: