jesus that became a long title.

Anyway as the title says, is it a bug that a parent class that access its own private members from derived classes gets deprecation warning?


Scenario narrowed down:

// module foo;
class Foo
{
    private:
    bool _baz;

    public:
    final void foos(T : Foo)(string key, T[] values)
    {
      if (values && values.length)
      {
        foreach (child; values)
        {
          child._isChild = true;
        }
      }
    }
}

// module bar;
class Bar : Foo
{
}

The above in my case will give a deprecation warning that "_baz" isn't visible from "Bar".

Seems like a bug to me since I'm accessing "_baz" from "Foo" itself and not from "Bar" or is it by design that you can't do such thing.

I'm thinking it's because of my templated function perhaps?

I haven't decoupled it out of my project to make a separate compilation, I just want to clarify it's not a design thing first, because if it's by design then I don't want to spend more time on it than necessary.

If it's not by design then I'll narrow it down even more, to see if it's reproducable as above.

(I did not test the narrowed down version.)

Reply via email to