On 21/06/11 3:45 AM, Nick Sabalausky wrote:
Isn't visibility a form of access?

Regardless, I think it's clear that the whole point of a private "access"
modifier is to make things *private* and safely encapsulated. The current
situation clearly breaks this. And since visibility without access is
useless, I don't see any reason to even get into the subtle semantics of
"visibility" vs "access" at all.

It does break the idea of encapsulation a little, but we have to consider the side effects:

As Jonathan says, it's possible that someone could try to use a private symbol and instead get a public symbol from another module. Depending on the situation, this could introduce subtle incorrect behavior that is difficult to detect. It's rare, but it could happen.

You rightly argued the other way that someone could add a private symbol, which then causes user code to fail to compile due to a ambiguity. That sucks, but it is just an inconvenience that is easily solved by qualifying usage of the symbol. There is no possibility of subtle, difficult-to-detect behavior.

I'm kind of on the fence with this. There's definitely merit to both sides of the argument.


Reply via email to