http://www.digitalmars.com/d/interface.html
A reimplemented interface must implement all the interface functions, it does not inherit them from a super class:
interface D{
int foo();
}
class A : D{
int foo() { return 1; }
}
class B : A, D{
alias A.foo foo; // shouldn't this work for the reimplementation ???
}
in DMD 0.173 it doesn't.
Comment #1 by bugzilla — 2006-11-26T02:33:36Z
This is as designed:
"A reimplemented interface must implement all the interface functions, it does not inherit them from a super class:"
Comment #2 by smjg — 2006-11-26T03:08:00Z
The quotation says nothing about whether this is valid code. It merely states _that_ a class that reimplements an interface must implement the interface functions, not _how_ it may or may not go about doing so.
Hence the comment,
"shouldn't this work for the reimplementation ???"
i.e. shouldn't this be one way to go about implementing the interface functions?
Comment #3 by smjg — 2007-11-08T08:10:04Z
Reopening per lack of response to my last comment, and considering that it's been brought up again.
Comment #4 by smjg — 2007-11-08T08:11:05Z
*** Bug 1584 has been marked as a duplicate of this bug. ***