Comment #0 by andrej.mitrovich — 2019-06-25T06:44:16Z
This is similar to https://issues.dlang.org/show_bug.cgi?id=2417.
Test-case:
base.d:
```
import derived;
class Base
{
protected void func() { }
}
void main()
{
auto derived = new Derived;
derived.func();
}
```
derived.d:
```
import base;
class Derived : Base
{
protected override void func() { }
}
```
~/dev/d master * $ dmd -run base.d
base.d(11): Deprecation: derived.Derived.func is not visible from module base
base.d(11): Error: class `derived.Derived` member func is not accessible
The fix is to change:
auto derived = new Derived;
to:
Base derived = new Derived;
But I don't see why the compiler can't access it in the first case, it's still a virtual call after all..
Comment #1 by robert.schadek — 2024-12-13T19:04:20Z