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...