https://issues.dlang.org/show_bug.cgi?id=17349

          Issue ID: 17349
           Summary: Covariant overrides should be allowed
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nob...@puremagic.com
          Reporter: bugzi...@digitalmars.com

The following:

  class C {
    void bar();
    void foo(void* p);
  }

  class D : C {
    override void bar() const;        // works
    override void foo(const void* p); // error
  }

produces the error:

  test.d(8): Error: function test.D.foo does not override any function, did you
mean to override 'test.C.foo'?

when it should compile successfully.

The covariance check is only done on the 'this' pointer. The problem is in the
compiler function findVtblIndex().

--

Reply via email to