[squeak-dev] Re: about Dictionary valuesDo:
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Tue Oct 20 17:59:58 UTC 2009
well, among 49 senders of keys, I see very few problem:
Bag>>#asSet obviously
Behavior>>#selector the comment tells Set, but is it necessary ?
among 92 usages of selectors
basicLocalSelectors: aSetOrNil
localSelectors := aSetOrNil
traits ? didn't try to follow further
some will use remove which is not an Array protocol (removeAllFoundIn:
from #replaceSilently:to:)
some usages like class selectors includes: will be a bit less efficient
#classVarNames comment tells a Set, though code would behave as well
with a sorted collection...
some = test might not work if collection is arbitrarily ordered
(tempRefs keys = method startpcsToBlockExtents values asSet)
ImageSegment findRogueRootsRefStrm: will use remove:
A few asSet should be necessary.
Nicolas
2009/10/20 Andreas Raab <andreas.raab at gmx.de>:
> Nicolas Cellier wrote:
>>>
>>> Can you provide some examples of places that break?
>>
>> Look among 49 remaining senders of keys, a few use usage like #selectors
>> do.
>
> Looking through this, nothing springs to mind that would break. Even places
> like, e.g., aClass selectors includes: aSelector should continue to work
> with the one possible exception that in cases where IdentityDictionary keys
> are used the resulting collection should compare identity not equality,
> which would be a problem if there were code that expects e.g., Object
> selectors includes: 'yourself' => false. (that seems rare)
>
> But other than that I don't really see anything that would break with the
> change. Have you tried making the change and just run all the tests to see
> which ones break and why?
>
> Cheers,
> - Andreas
>
>
More information about the Squeak-dev
mailing list
|