Updated DIP22 - Private symbol visibility

Dicebot public at dicebot.lv
Sat Dec 21 13:36:57 PST 2013


On Saturday, 21 December 2013 at 21:14:43 UTC, Martin Nowak wrote:
> If I make a refactoring and move a function from module A to B, 
> but the function calls an overload set in A it should not have 
> a different overload resolution.

If MUST have different overload resolution if B does not have 
access to those A function. Anything else is damn broken module 
system. Why would anyone expect to move functions between modules 
and have accessibility rules magically persistent?

> Similar case, if I pass an overload set via alias to a traits 
> template in module B, the template should follow the same 
> overload resolution.
> It's very important that we preserve these properties.

It is a major design issue with templates using declaration scope 
for access resolution instead of instantation scope. I think it 
was a mistake and is unrelated to general visibility rules.


More information about the Digitalmars-d mailing list