On Sep 25, 2007, at 2:00 , Nick Ager wrote:
Armed with new knowledge of Traits gained from the excellent
"Squeak By
Example" I tried:
Smalltalk allClasses select: [:each | each hasTraitComposition]
which gave:
an OrderedCollection(ActionSequence BalloonBezierSimulation
BalloonEngine
BalloonEngineConstants BasicRequestor Behavior BrowserProvider
....WorldMenuProvider XMLTokenizer ZipConstants ZipFileConstants)
However browsing to a random class say "ActionSquence", doesn't
show any
evidence of Trait composition. Is this a problem with the current
browser?
No. #hasTraitComposition only checks if the traitCompositions
variable is not nil - the composition may still be empty. Which can
happen quite easily since that variable is lazily initialized by
sending #traitCompositions.
This appears to be by design, the codebase is scattered with
#hasTraitComposition checks. But missing only one occurrence where
#traitCompositions is sent unguarded by #hasTraitComposition will get
the variable populated. And it will never get reset to nil as far as
I can tell.
- Bert -
_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners