Extending D's support for object-oriented design with private(this)

NotYouAgain NotYouAgain at gmail.com
Fri Apr 26 23:50:44 UTC 2024


On Friday, 26 April 2024 at 16:38:54 UTC, Steven Schveighoffer 
wrote:
>...
> module m;
>
> class C
> {
>    private(this) int _count;
>    public void setCount(int c) { _count = c; }
>
>    unittest
>    {
>       C c = new C();
>       c._count = 42; // oops, this is still allowed
>    }
> }
> ```

There is no 'oops' there.

The unittest is a member of the class!

It the unittest outside of the class that should not be allowed 
to compile.


More information about the dip.ideas mailing list