> I do not understand why classVariables cannot shadow globals and take 
> precedence over them.
> When I define a classVariable the resolution should take classVariable over 
> global.

Any kind of shadowing is disallowed in Smalltalk.

I think this is part of the language design is quite broken and a
rather static approach that is very strange in a dynamic language like
Smalltalk. Not even Java has these kind of static restrictions.

> Now what will happen if I define classVariable with a name that is ok in my 
> current image but will be present
> in the future in the image I will load my code!

Yes, this is the current semantics. The possibility to shadow globals
would be very useful to  replace globals in the context of a class
hierarchy. I suggested already many years ago to replace all shadowing
errors on all levels (temps, arguments, inst vars, class vars, pool
vars, globals) with compiler warnings.

Lukas

-- 
Lukas Renggli
www.lukas-renggli.ch

Reply via email to