Preparing for the New DIP Process

zjh fqbqrr at 163.com
Thu Jan 25 15:14:30 UTC 2024


On Thursday, 25 January 2024 at 15:03:41 UTC, Max Samukha wrote:
> module-level. Consider:
>
> ```
> synchronized class C
> {
>     private int x;
>     private int y;
>
>     invariant () { assert (x == y); }
> }
>
> void foo(C c)
> {
>     // mutate c
> }
> ```
>
> With module-level private, 'foo' is part of C's public 
> interface, but it neither locks on c, nor runs the invariant 
> checks. I personally have no idea how to fix that sensibly 
> except by ditching class invariant/synchronized entirely.



`private to module `, goes against `consistency, completeness, 
and redundancy` pursued by D, just to maintain the `uniqueness` 
between `D and C++`!



More information about the Digitalmars-d-announce mailing list