Hi
I have run into two issues when #reset-ing WriteStreams. The first one
is that #reset on WriteStream and ReadWriteStream don't have the same
semantics [1] (although ReadWriteStream is a subclass of WriteStream).
(WriteStream on: String new)
nextPutAll: 'the content';
reset;
contents
gives you ''
but
(ReadWriteStream on: String new)
nextPutAll: 'the content';
reset;
contents
gives you 'the content'
The second is that #reset doesn't affect the answer of #size [2].
WriteStream >> #size has no comment (!) so my naïve assumption of its
semantics are:
aStream size = aStream contents size
However the following test fails:
| stream |
stream := String new writeStream.
self assert: stream size = stream contents size.
stream
nextPutAll: 'abc';
reset.
self assert: stream size = stream contents size
[1] http://code.google.com/p/pharo/issues/detail?id=4706
[2] http://code.google.com/p/pharo/issues/detail?id=4707
Cheers
Philippe