Today's D has a very strong, principled notion of hijacking: for any given function call, if the call candidates are found in different modules, the call is invalid. I think that works great.

Lately I've been thinking of using the same notion of hijacking as a replacement for symbol hiding in inheritance hierarchies. Right now, if a derived class defines a symbol, that symbol simply hides whatever homonym symbol (unless it overrides it). There are some warnings about hiding sometimes, but it's all kind of fuzzy.

How about just using hijacking? The basic idea is that a use of a symbol in a class should not hijack a homonym symbol defined in a different module.


What do you think?

Andrei

Reply via email to