[Pkg] The Trunk: Collections-ul.411.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Dec 8 01:35:39 UTC 2010
Levente Uzonyi uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-ul.411.mcz
==================== Summary ====================
Name: Collections-ul.411
Author: ul
Time: 23 November 2010, 1:56:22.424 pm
UUID: 42a0b87a-f525-6345-bd2c-e55186e17c9d
Ancestors: Collections-ul.410
- use #shouldBePrintedAsLiteral instead of #isLiteral when printing or storing characters and arrays
=============== Diff against Collections-ul.410 ===============
Item was changed:
----- Method: Array>>printOn: (in category 'printing') -----
printOn: aStream
+ self shouldBePrintedAsLiteral ifTrue: [^self printAsLiteralFormOn: aStream].
- self isLiteral ifTrue: [^self printAsLiteralFormOn: aStream].
self class = Array ifTrue: [^self printAsBraceFormOn: aStream].
^super printOn: aStream!
Item was added:
+ ----- Method: Array>>shouldBePrintedAsLiteral (in category 'testing') -----
+ shouldBePrintedAsLiteral
+
+ ^self class == Array and: [ self allSatisfy: [ :each | each shouldBePrintedAsLiteral ] ]!
Item was changed:
----- Method: Array>>storeOn: (in category 'printing') -----
storeOn: aStream
"Use the literal form if possible."
+ self shouldBePrintedAsLiteral
- self isLiteral
ifTrue:
[aStream nextPut: $#; nextPut: $(.
self do:
[:element |
element storeOn: aStream.
aStream space].
aStream nextPut: $)]
ifFalse: [super storeOn: aStream]!
Item was changed:
----- Method: Array>>storeOnStream: (in category 'filter streaming') -----
storeOnStream:aStream
+
+ self shouldBePrintedAsLiteral
+ ifTrue: [ super storeOnStream:aStream ]
+ ifFalse:[ aStream writeCollection:self ]
- self isLiteral ifTrue: [super storeOnStream:aStream] ifFalse:[aStream writeCollection:self].
!
Item was changed:
+ ----- Method: Character>>isLiteral (in category 'testing') -----
- ----- Method: Character>>isLiteral (in category 'printing') -----
isLiteral
^true!
Item was added:
+ ----- Method: Character>>shouldBePrintedAsLiteral (in category 'testing') -----
+ shouldBePrintedAsLiteral
+
+ ^value between: 33 and: 255!
Item was changed:
----- Method: Character>>storeOn: (in category 'printing') -----
storeOn: aStream
"Common character literals are preceded by '$', however special need to be encoded differently: for some this might be done by using one of the shortcut constructor methods for the rest we have to create them by ascii-value."
| name |
+ self shouldBePrintedAsLiteral
- (value between: 33 and: 255)
ifTrue: [ aStream nextPut: $$; nextPut: self ]
ifFalse: [
name := self class constantNameFor: self.
name notNil
ifTrue: [ aStream nextPutAll: self class name; space; nextPutAll: name ]
ifFalse: [
aStream
nextPut: $(; nextPutAll: self class name;
nextPutAll: ' value: '; print: value; nextPut: $) ] ].!
More information about the Packages
mailing list