[squeak-dev] The Inbox: Collections-cmm.1022.mcz

Chris Muller asqueaker at gmail.com
Sun Nov 20 23:00:06 UTC 2022


You're all 100% right.  I had forgotten about #splitBy:, but changing
subStrings: certainly didn't feel right.  Interestingly, the in-image
Method Finder doesn't find either one.  Thank you, community!  :)

I moved this to Treated.

 - Chris

On Sat, Nov 19, 2022 at 6:23 AM Thiede, Christoph <
Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:

> Hm ... don't we have #splitBy: for this? This seems like a possibly
> dangerous breaking change to me. No strong opinion, though. :-)
>
>
> Best,
>
> Christoph
> ------------------------------
> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im
> Auftrag von Chris Muller <asqueaker at gmail.com>
> *Gesendet:* Samstag, 19. November 2022 06:24:43
> *An:* squeak-dev at lists.squeakfoundation.org
> *Betreff:* Re: [squeak-dev] The Inbox: Collections-cmm.1022.mcz
>
> I don't know why subStrings: should behave differently for empty fields as
> non-empty.
>
> Before this change, empty fields are ignored:
>
>     'a:b::d' subStrings: ':'  ==> " #('a' 'b' 'd') "
>     '::::' subStrings: ':' ==> #()
>
> after this change, empty fields are honored:
>
>     'a:b::d' subStrings: ':'  ==> " #('a' 'b' '' 'd') "
>     '::::' subStrings: ':' ==>  #('' '' '' '')
>
> Thoughts?
>
>  - Chris
>
> On Fri, Nov 18, 2022 at 11:14 PM <commits at source.squeak.org> wrote:
>
>> Chris Muller uploaded a new version of Collections to project The Inbox:
>> http://source.squeak.org/inbox/Collections-cmm.1022.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Collections-cmm.1022
>> Author: cmm
>> Time: 18 November 2022, 11:14:01.223447 pm
>> UUID: 9a05d251-4f02-43de-94e8-0f077ec51680
>> Ancestors: Collections-nice.1021
>>
>> Allow empty fields when using #subStrings:.
>>
>> =============== Diff against Collections-nice.1021 ===============
>>
>> 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.'].
>>         sourceStream := ReadStream on: self.
>>         result := OrderedCollection new.
>>         subString := String new.
>>         [sourceStream atEnd]
>>                 whileFalse:
>>                         [char := sourceStream next.
>>                         (separators includes: char)
>> +                               ifTrue: [result add: subString copy.
>> +                                                       subString :=
>> String new]
>> -                               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!
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20221120/8dcf89eb/attachment.html>


More information about the Squeak-dev mailing list