Preparing for the New DIP Process

Steven Schveighoffer schveiguy at gmail.com
Sun Jan 28 04:23:06 UTC 2024


On Thursday, 25 January 2024 at 15:03:41 UTC, Max Samukha wrote:
> On Monday, 22 January 2024 at 23:28:40 UTC, Jonathan M Davis 
> wrote:
>
>>
>> Of course, ultimately, different programmers have different 
>> preferences, and none of us are going to be happy about 
>> everything in any language.
>
> It's not only about preferences. The feature is inconsistent 
> with how 'invariant' and 'synchronized' are specified. They 
> imply class-instance-level private, while the language dictates 
> module-level. Consider:

```d
synchronized class C
{
     private int x;
     private int y;

     invariant () { assert (x == y); }

     static void foo(C c)
     {
         // mutate c
     }
}
```

Same thing. Yet would still break with some sort of "class-only 
private"

the unittest case is also similar -- what happens if you put the 
unittest next to the function being tested? It's now in the 
class, so it can access "true" private data. Same problems, this 
even can happen in Java. I don't see what the difference is. Same 
code, same file, just in a different spot? Seems more like you 
just need to... not do that.

-Steve


More information about the Digitalmars-d-announce mailing list