Hi Tim,
I did the change and the rationale is that the most logical Collection recipient for Character is String, what else?
OrderedCollection is totally arbitrary with this respect.
OK, you cannot add: to a String. But can you add: to (1 to: 10)? No you can't.
So, put together, the Rationale is simply a principle of least astonishment.

I just used this selector for own little experiments, then I used my commiter privilege (abused ?) to push the change to my benefit.
I only act like this when I think that my own benefit matches general benefit.
I have plenty of more questionnable changes that I don't push.
I'm sorry that general benefit does not mean everyone's benefit, but in this case I would tend to favour Levente solution, fix Scratch and keep the String recipient.

Cheers


2013/7/18 tim Rowledge <tim@rowledge.org>

On 17-07-2013, at 7:18 PM, Levente Uzonyi <leves@elte.hu> wrote:

> On Wed, 17 Jul 2013, tim Rowledge wrote:
>
>> Not long ago Character>to: was changed to return a String instead of an Array. That broke ObjectsTool>alphabeticTabs
>>
>> Either we need to fix alphabeticTabs to re-convert the String to a collection, or rescind the change to Character>to:. It would help if the rationale for that change were known.
>
> The fix is easy, just replace the line causing the bug with this:
>
>       tabLabels := ($a to: $z) collect: [:ch | ch asString] as: OrderedCollection.
>
> I can't commit now, so please do it.

I had already sent a fix like that to Frank - since he's tearing up the system right now and I'm a bit occupied with Scratch modernisation - but I'm not convinced it is better than making $a to: $z go back to returning an Array. I *know* a String is kinda-sorta an array of characters - but I want to be assured that the change didn't bugger up any other methods as a side-effect. Why was it done? What efforts to ensure it didn't screw things were made?
Strange OpCodes: YOGA: Exit Finite-State Mode