Eliot Miranda uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-eem.450.mcz
==================== Summary ====================
Name: System-eem.450 Author: eem Time: 25 July 2011, 10:54:32.489 am UUID: aef72684-3068-4139-92cd-874af8591b31 Ancestors: System-ul.449
Fix allBehaviorsDo: to avoid duplicates, and to be a lot simpler.
=============== Diff against System-ul.449 ===============
Item was changed: ----- Method: SystemNavigation>>allBehaviorsDo: (in category 'query') ----- allBehaviorsDo: aBlock "Evaluate the argument, aBlock, for each kind of Behavior in the system (that is, Object and its subclasses and Traits). ar 7/15/1999: The code below will not enumerate any obsolete or anonymous behaviors for which the following should be executed:
Smalltalk allObjectsDo:[:obj| obj isBehavior ifTrue:[aBlock value: obj]].
but what follows is way faster than enumerating all objects."
+ Class rootsOfTheWorld do: + [:root| + root withAllSubclassesDo: + [:class| + class isMeta ifFalse: "The metaclasses are rooted at Class; don't include them twice." + [aBlock value: class; value: class class]]]. + ClassDescription allTraitsDo: + [:trait | aBlock value: trait]! - aBlock value: ProtoObject. - ProtoObject allSubclassesDoGently: aBlock. "don't bring in ImageSegments" - - "Classes outside the ProtoObject hierarchy" - Class subclassesDo: [:aClass | - (aClass == ProtoObject class - or: [aClass isInMemory not - or: [aClass isMeta not]]) ifFalse: - ["Enumerate the non-meta class and its subclasses" - aBlock value: aClass soleInstance. - aClass soleInstance allSubclassesDoGently: aBlock]]. - - ClassDescription allTraitsDo:[:trait | aBlock value: trait].!
packages@lists.squeakfoundation.org