sweet queries :)

>> 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.
> 
> 


Reply via email to