[squeak-dev] The Trunk: Collections-eem.603.mcz

Eliot Miranda eliot.miranda at gmail.com
Wed Feb 4 02:59:45 UTC 2015


On Tue, Feb 3, 2015 at 12:22 PM, Levente Uzonyi <leves at elte.hu> wrote:

> On Tue, 3 Feb 2015, commits at source.squeak.org wrote:
>
>  Eliot Miranda uploaded a new version of Collections to project The Trunk:
>> http://source.squeak.org/trunk/Collections-eem.603.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Collections-eem.603
>> Author: eem
>> Time: 3 February 2015, 12:06:59.618 pm
>> UUID: 6521c82f-d8de-4c07-a754-3bc3a8667746
>> Ancestors: Collections-mt.602
>>
>> Three fewer uses of isKindOf:
>>
>> =============== Diff against Collections-mt.602 ===============
>>
>> Item was changed:
>>  ----- Method: Dictionary>>= (in category 'comparing') -----
>>  = aDictionary
>>         "Two dictionaries are equal if
>>          (a) they are the same 'kind' of thing.
>>          (b) they have the same set of keys.
>>          (c) for each (common) key, they have the same value"
>>
>>         self == aDictionary ifTrue: [ ^ true ].
>> +       aDictionary isDictionary ifFalse: [^false].
>> -       (aDictionary isKindOf: Dictionary) ifFalse: [^false].
>>         self size = aDictionary size ifFalse: [^false].
>>         self associationsDo: [:assoc|
>>                 (aDictionary at: assoc key ifAbsent: [^false]) = assoc
>> value
>>                         ifFalse: [^false]].
>>         ^true
>>
>>  !
>>
>> Item was changed:
>>  ----- Method: SequenceableCollection>>hasEqualElements: (in category
>> 'comparing') -----
>>  hasEqualElements: otherCollection
>>         "Answer whether the receiver's size is the same as
>> otherCollection's
>>         size, and each of the receiver's elements equal the corresponding
>>         element of otherCollection.
>>         This should probably replace the current definition of #= ."
>>
>>         | size |
>> +       otherCollection isSequenceable ifFalse: [^ false].
>> -       (otherCollection isKindOf: SequenceableCollection) ifFalse: [^
>> false].
>>
>
> This should either include an #isCollection check, or #isSequenceable
> should be moved up to Object.


Oops.  Good catch.  Which would you do?  I favour the latter.

Levente
>
>
>          (size := self size) = otherCollection size ifFalse: [^ false].
>>         1 to: size do:
>>                 [:index |
>>                 (self at: index) = (otherCollection at: index) ifFalse:
>> [^ false]].
>>         ^ true!
>>
>> Item was changed:
>>  ----- Method: String>>subStrings: (in category 'converting') -----
>>  subStrings: separators
>>         "Answer an array containing the substrings in the receiver
>> separated
>>         by the elements of separators."
>>         | char result sourceStream subString |
>>         #Collectn.
>>         "Changed 2000/04/08 For ANSI <readableString> protocol."
>> +       (separators isString or:[separators allSatisfy: [:element |
>> element isCharacter]]) ifFalse:
>> +               [^ self error: 'separators must be Characters.'].
>> -       (separators isString or:[separators allSatisfy: [:element |
>> element isKindOf: Character]])
>> -               ifFalse: [^ self error: 'separators must be Characters.'].
>>         sourceStream := ReadStream on: self.
>>         result := OrderedCollection new.
>>         subString := String new.
>>         [sourceStream atEnd]
>>                 whileFalse:
>>                         [char := sourceStream next.
>>                         (separators includes: char)
>>                                 ifTrue: [subString notEmpty
>>                                                 ifTrue:
>>                                                         [result add:
>> subString copy.
>>                                                         subString :=
>> String new]]
>>                                 ifFalse: [subString := subString ,
>> (String with: char)]].
>>         subString notEmpty ifTrue: [result add: subString copy].
>>         ^ result asArray!
>>
>>
>>
>>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150203/3160a4b8/attachment.htm


More information about the Squeak-dev mailing list