www.digitalmars.com         C & C++   DMDScript  

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


          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());

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