[squeak-dev] "Duplicate" MethodReferences in implementorsOf:

Frank Shearar frank.shearar at gmail.com
Sat Nov 2 10:43:11 UTC 2013


Look for the implementors of #rename:. You'll see 17 Trait entries,
each = to each other but not ==. I've traced this back to _something_
about Environment's declarations.

In a Workspace,

n := SystemNavigation default.
a := OrderedCollection new.
n allBehaviorsDo: [:cls | a add: cls].
{a size. a asSet size} "#(4384 4367)"
"4384 - 4367 = 17"

So we have 17 duplicates being reported.

If you explore Smalltalk in a "full fat" trunk (specifically, one that
still has 311Deprecated) and run "self allTraits" you'll get 17. Hmm.
Explore "self allTraits" and you'll see the 17 Traits from
311Deprecated. So far, so good. Try cmd-b one of those Traits (say,
TTransformationCompatibility  and... you'll browse Trait. (You can get
to TTransformationCompatibility by opening a new browser and searching
for it.)

So for some reason Smalltalk thinks that every one of these Trait
names map to Trait. For example, cmd-b TTransformationCompatibility in
a Workspace and you end up browsing Trait.

I'm still investigating why this is broken, but if anyone knows, feel
free to let me know :)

frank


More information about the Squeak-dev mailing list