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.
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/19315 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB