On Monday, 20 October 2014 at 17:37:34 UTC, nrgyzer wrote:
This solved the problem for the first time, BUT - I don't know if it's a bug or a feature - I ran into another problem. I'm having the following few lines:

module example;

private
{
   string[string] myPrivateArray;
}

static this()
{
   foreach ( m; __traits(allMembers, example) )
   {

      writefln("%s ::> %s", m, __traits(getProtection, m));
   }
}

void main() { /* empty */ }

Compiling and running the application say's that myPrivateArray is public:

myPrivateArray ::> public

I declared myPrivateArray using the private keyword, but the dmd-trait `getProtection` says public. Why?

Ah, okay, I also need to use mixin(m) to get the protection. But in this case, getProtection only works if I want retrieve the protection for a variable, contained in the same module. I simply can't use getProtection if I'm using the allMembers-trait for another module where the variable is private...

Reply via email to