#= and #hash
Stephane Ducasse
ducasse at iam.unibe.ch
Mon Aug 18 19:33:18 UTC 2003
Martin do you have tests? Why your fixes haven't been harvested?
I guess because this was another period. Could you send them so that
they got evaluated and in?
Stef
On Monday, August 18, 2003, at 05:20 PM, Martin Wirblat wrote:
> See my fix at http://swiki.gsug.org:8080/sqfixes/3250.html.
> It includes the redefinitions of #hash for about 10 classes ( the
> complete set for all missing redefinitions in 3.4 ).
>
> Only the ones of your list which inherit #hash from Object are bugs.
>
> Regards
> Martin
>
> Mike Roberts <mike at mjr104.co.uk> wrote on 18.08.2003 14:00:56:
>>
>> I have found a few more Text* objects that don't appear to behave
>> well in Sets due to the lack of an implementation of #hash when #= is
>> defined. I thought I would have a look to see what the situation in
>> the image was like.
>>
>> Using this code (any better/neater way of doing it let me know!)
>>
>> | hash equals |
>> hash _ (SystemNavigation new allImplementorsOf:#hash) collect:[:i| i
>> classSymbol]. equals _ (SystemNavigation new allImplementorsOf:#=)
>> collect:[:i| i classSymbol]. (hash reject:[:i | equals includes:i])
>> inspect. (equals reject:[:i | hash includes:i]) inspect.
>>
>> Gives the following results:
>>
>> Implementors of #hash but not #= directly
>> ByteArray #= from SequencableCollection
>> Collection #= from Object
>> TranslucentColor #= from Color (method says it handles this)
>>
>> Implementors of #= but not #hash directly
>> CRLookupItem #hash from Object
>> CharacterBlock #hash from Rectangle
>> CompiledMethod #hash from ByteArray
>> Dictionary #hash from Collection
>> Environment #hash from Collection
>> FlashLineStyle #hash from Object
>> Heap #hash from SequenceableCollection
>> RunArray #hash from SequenceableCollection
>> Set #hash from Collection
>> SortedCollection #hash from SequenceableCollection
>> Symbol #hash from String
>> TextAlignment #hash from Object
>> TextAnchor #hash from Object
>> TextEmphasis #hash from Object
>> TextFontReference #hash from TextFontChange
>> TextKern #hash from Object
>> TextLine #hash from Object
>> TextLineInterval #hash from Interval
>> TextStyle #hash from Object
>>
>> All those classes that implement #= but take #hash from Object are, I
>> think, bugs. I'll make a start on tests/fixes for the Text* objects.
>>
>> I just wanted to post this list to see if anyone more familiar with
>> these methods could see any potential problems.
>>
>> Cheers,
>>
>> Mike
>
>
>
More information about the Squeak-dev
mailing list
|