[BUG][Modules] Beware! Pool constants visible globally
Andreas Raab
Andreas.Raab at gmx.de
Fri Feb 1 23:31:56 UTC 2002
Folks,
If you run the module updates be _very_ careful about declaring instvars
and temps correctly _before_ you accept a method. It appears that all
globals formerly living in pool dictionaries are now visible globally!
In other words, if you get into a workspace and evaluate
AmbientAlpha
you'll get the definition from B3DEngineConstants, if you evaluate
Space
you'll get it from TextConstants, and if you evaluate
above
you'll get it from WonderlandConstants.
BEWARE! WonderlandConstants has various constants that are _lower_ case.
In other words, if you write a method like
Object>>foo: bar
above := bar.
^above
the system will _not_ warn you that above is undeclared but rather
assign to the binding from WonderlandConstants. Ouch!
Anyone having an idea _why_ these are visible? Or even better, how to
fix this problem? I can't imagine that we introduced a module system
just to add _more_ globals... ;-)
Cheers,
- Andreas
More information about the Squeak-dev
mailing list
|