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