digitalmars.D.bugs - Protection modifiers not honored in nested struct/class/union
- Jarrett Billingsley (31/31) May 30 2005 I know nested classes (and probably structs and unions) will be getting ...
I know nested classes (and probably structs and unions) will be getting an
overhaul soon, so this is maybe one of the things that can be worked on:
Protection modifiers (public, private, package) are ignored in nested
structs, classes, and unions.
Code:
[dtest.d]
----------------------
import mymod;
void main()
{
A a=new A;
// this line is illegal
//a.mX=5;
// but this line is OK
a.B.mY=10;
}
[mymod.d]
-----------------------
module mymod;
class A
{
private int mX;
private struct B
{
private static int mY;
}
}
Uncommenting the commented code in dtest.d shows that regular members have
their protection modifiers honored. However, the private mY in the private
struct B is as accessible as if it were public. This happens if B is a
class or struct as well.
May 30 2005








"Jarrett Billingsley" <kb3ctd2 yahoo.com>