Steven Schveighoffer wrote:
On Thu, 30 Jul 2009 12:17:53 -0400, Ary Borenszweig <[email protected]> wrote:

Steven Schveighoffer wrote:
On Thu, 30 Jul 2009 12:04:54 -0400, Ary Borenszweig <[email protected]> wrote:

1. private applied to structs, classes, etc., doesn't have any effect: I can access them anyway.
2. modifiers that don't make sense should be disallowed.

I think these are pretty serious bugs (specially the first one). Why new features are added to D and these things are not getting fixed?
1 is not a problem unless you are in the same file. Any classes/functions compiled in the same module are considered to be part of the same module of code, and therefore have access to eachothers private data. Try accessing same private fields from outside the module.

That's exactly what I'm saying.

---
module one;

private struct Foo {}
---
module two;

import one;

Foo foo;
---

Compiles without errors.

Oh, I read private applied to struct/class *members* sorry...

Yeah, I didn't write "from other modules", so I wasn't clear enough.


I agree private classes/structs should work. I'm sure there's a bugzilla for it already.

There are several now about protection attributes not working as expected:

http://d.puremagic.com/issues/show_bug.cgi?id=1161
http://d.puremagic.com/issues/show_bug.cgi?id=1567
http://d.puremagic.com/issues/show_bug.cgi?id=2225
http://d.puremagic.com/issues/show_bug.cgi?id=2830
http://d.puremagic.com/issues/show_bug.cgi?id=313
http://d.puremagic.com/issues/show_bug.cgi?id=314

Reply via email to