function overrides but is not covariant

Timon Gehr timon.gehr at gmx.ch
Mon Apr 29 04:40:45 PDT 2013


On 04/28/2013 09:45 PM, Namespace wrote:
> That surprised me a bit. Is that expected?
>
> ----
> import std.stdio;
>
> struct A { }
>
> interface IFoo {
>      void bar(ref const A);
> }
>
> class Foo : IFoo {
>      void bar(ref const A a) {
>
>      }
>
>      void bar(const A a) {
>          return this.bar(a);
>      }
> }
> ----
> prints:
>
> Error: function c517.Foo.bar of type void(const(A) a) overrides but is
> not covariant with c517.IFoo.bar of type void(ref const(A))

Seems to be a bug.


More information about the Digitalmars-d-learn mailing list