Nice!
kilon wrote:
>any links why newcomers like me should be impressed ? Whats the advantages ?
Then we can now have more compact versions of
FreeTypeSettings LabelMorph MorphTreeNodeMorph MorphTreeListManager
ThemeSettings MultistateButtonMorph PharoUserPermissions
SimpleHierarchicalListMorph Nautilus class SpecTreeColumn
PluggableIconListMorph MorphTreeMorph Workspace CompositionScanner Paragraph
MethodOveridesAction HandMorph TextComposer ScrollBar NECContext
MultiByteFileStream NewValueHolder DynamicClassGroup SearchMorph
NautilusHistoryEntry PluggableTextFieldMorph PluggableListMorph
TableLayoutProperties DynamicGroup DropListMorph GradientFillStyle
PackageTreeNautilus PluggableTextMorphWithLimits NECUntypedModel BalloonEngine
MetacelloPharo30Platform SystemWindow NautilusWindow NECPreferences class
EditorFindReplaceDialogWindow GoBackStringMorph
NautilusHistoryEntryWithSourceCode MCCacheRepository PluggableButtonMorph
AlphaImageMorph PluggableTextMorph RxMatcher MorphExtension
TextMorphForFieldView MorphTreeColumn FindReplaceService CheckboxMorph
TextMorphForEditView IndentingListItemMorph ControlButtonMorph
CheckboxButtonMorph
with multiple booleans mapped to one instVar
|set|
set := IdentitySet new.
Object allSubclasses do: [ :aClass |
|varSize coll nr candidate |
candidate := false.
varSize := aClass instSize.
coll := aClass allInstances.
nr := 10 min: coll size.
(coll first: nr) do: [ :anInstance |
|value nrBoolean|
nrBoolean := 0.
1 to: varSize do: [ :varIndex |
value := anInstance instVarAt: varIndex.
value class = True ifTrue: [ nrBoolean := nrBoolean + 1
].
value class = False ifTrue: [ nrBoolean := nrBoolean +
1 ]].
nrBoolean >1 ifTrue: [ candidate := true ] ].
candidate ifTrue: [ set add: aClass ]].
set.