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

Levente Uzonyi leves at elte.hu
Tue Feb 3 20:22:21 UTC 2015


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.


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!
>
>
>


More information about the Squeak-dev mailing list