[Pharo-project] 1.2: class var #Instance not allowed

Igor Stasenko siguctua at gmail.com
Wed Feb 2 14:32:19 CET 2011


2011/2/2 Janko Mivšek <janko.mivsek at eranova.si>:
> Hi guys,
>
> One more problem: if some class have a class variable named #Instance,
> it is not loadable anymore.
>
> It seems that problem is in Class>>bindingOf: method, where check is
> done in a "declared environment", which happens to be a global
> SystemDictionary, where a class Instance actually exists.
>
> This means that no class var with a name which collides with a name of
> class is allowed?
>
>
The bug is not in the #bindingOf:

it just answers (correctly) that for given name there are already a
binding exists in system.
So, it should be allowed to declare the class variable with same name.
But there are some nuances:
 - what to do if supeclass also defining binding for this name?
 - what if pool dicitonary in (super)class defines binding for given name?

should we allow shadowing of these cases as well, or just for globals?


> Class>>bindingOf:
>
>       ...
>        "Next look in declared environment."
>        binding := self environment bindingOf: aSymbol.
>        binding ifNotNil:[^binding].
>       ...
>
> Strack trace follows in next mail
>
>
>
>
> --
> Janko Mivšek
> AIDA/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
>
>



-- 
Best regards,
Igor Stasenko AKA sig.




More information about the Pharo-project mailing list