On Tue, Dec 13, 2011 at 5:01 PM, St�phane Ducasse
<Stephane.Ducasse@inria.fr> wrote:
This is a pity that allSharedPools does not return an ordered unique collection.
Class>>allSharedPools
� � � �"Answer a Set of the pools the receiver shares, including those defined
� � � �in the superclasses of the receiver."
� � � �| aSet |
� � � �^self superclass == nil
� � � � � � � �ifTrue: [self sharedPools copy]
� � � � � � � �ifFalse: [aSet := self superclass allSharedPools.
� � � � � � � � � � � �aSet addAll: self sharedPools.
� � � � � � � � � � � �aSet]
since sharedPools returns now an orderedCollection I doubt that the uniqueness will the guaranteed.
I have just tested, and of course, it includes duplicates. Why not a simply:
Class>>allSharedPools
� � � �"Answer a Set of the pools the receiver shares, including those defined
� � � �in the superclasses of the receiver."
� � � �| aSet |
� � � �^(self superclass == nil
� � � � � � � �ifTrue: [self sharedPools copy]
� � � � � � � �ifFalse: [aSet := self superclass allSharedPools.
� � � � � � � � � � � �aSet addAll: self sharedPools.
� � � � � � � � � � � �aSet]) asSet
?
BTW, why it does a copy ?
�
Behavior>>allSharedPools
� � � �"Answer a Set of the names of the pools (Dictionaries or SharedPool subclasses) that the receiver and the receiver's ancestors share."
� � � �^superclass allSharedPools
I think it answers a list of SharedPool subclasses, not names.
�
Now on a metaclass we will climb up the inheritance chain for nothing so I would define allSharedPools as follows
ClassDescription>>allSharedPools
� � � �"Answer a Set of the pools the receiver shares, including those defined
� � � �in the superclasses of the receiver."
� � � �^ OrderedCollection new
Tell me what you think?
Stef