www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 17824] New: wrong visibility deduced for method

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

          Issue ID: 17824
           Summary: wrong visibility deduced for method
           Product: D
           Version: D2
          Hardware: x86
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: nicolas.jinchereau gmail.com

module base;
import derived;
class Base {
    private void foo() { }
    void callFoo(Derived d) { d.foo(); }
}
-------
module derived;
import base;
class Derived : Base { }
-------
import base;
import derived;
int main(string[] argv) {
    auto d = new Derived();
    d.callFoo(new Derived());
}

error:
base.d(6): Deprecation: base.Base.foo is not visible from class Derived

The method d.foo() should be callable from inside 'callFoo'. Casting 'd' to
'Base' inside 'callFoo()' before invoking 'foo' suppresses the error.

--
Sep 11 2017