On Sunday, 28 April 2013 at 19:45:41 UTC, 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))

Not surprising to me at all. Why would ref be covariant with non-ref?

Reply via email to