Implement Interface Using Super

bauss jj_1337 at live.dk
Sun Jan 27 09:31:46 UTC 2019


On Sunday, 27 January 2019 at 05:37:57 UTC, Jonathan Levi wrote:
> This works in LDC but not DMD?
>
> ```
> class A : B, I {
>     alias i = typeof(super).i;
> }
> class B {
>     void i() {
>         writeln("i");
>     }
> }
> interface I {
>     void i();
> }
> ```
>
> Is this a bug in DMD or in LDC?  How can I get this effect 
> correctly?

There is no bug here.

A does not implement i as a function which it should.

What you want to do is to override i within A and then call 
super.i() in the function.

An alias does not substitute an implementation and I think that's 
good because it could really cause some nasty hijacking bugs.


More information about the Digitalmars-d-learn mailing list