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

commits at source.squeak.org commits at source.squeak.org
Tue Feb 3 20:07:17 UTC 2015

Eliot Miranda uploaded a new version of Collections to project The Trunk:

==================== 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]].

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].
  	(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 |
  	"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]
  			[char := sourceStream next.
  			(separators includes: char)
  				ifTrue: [subString notEmpty
  							[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