On Thu, 24 Dec 2009,
csrabak@bol.com.br wrote:
> Em 24/12/2009 01:21, Levente Uzonyi <
leves@elte.hu > escreveu:
>
>> �On Thu, 24 Dec 2009,
csrabak@bol.com.br wrote:
>>
>>> Em 23/12/2009 22:51, Nicolas Cellier escreveu:
>>>
>>>> �2009/12/24 :
>>>>> Igor, Sometimes �a fallacy can �be written by clever �people, by
>>>>> accident. �If you pay attention to the line: (size := self size)
>>>>> = �otherCollection �size ifFalse: �[^false]. � I all �Smalltalks
>>>>> [Except �Pharo �to �what �I � wrote �a �comment �in �issue �1637
>>>>>
http://code.google.com/p/pharo/issues/detail?id=1637] this would
>>>>> return �false �if �self �be �not �Collection �or �otheCollection
>>>>> isKindOf: �Collection �not. � �This �happens �because �in �these
>>>>> Smalltalks Object>>size returns zero.
>>>>> Not �so sure. � Try �1.0 size, �then �1.0 at: �1.0 �size in �you
>>>> �favourite
>>>> dialect.
>>> Nicolas,
>>> In Squeak 3.10.2-7179:
>>> 1.0 size -> 2 "OK I'm surprised here"
>> �It's �not surprising �since Float �is a �variable word �subclass of
>> Number. :)
>>
>>> 1.0 at: 1.0 size -> 0 "this will not work anymore in Pharo because
>>> indices have to be Integer in Pharo right now"
>> �The index is 2, so it will �work. Btw, I wonder how pharo can force
>> Integer indices if the vm accepts Floats too.
>>
> Levente,
>
> In fact VM _does_ _not_ accept Floats as indices. �There is a hack in
> Squeak code (which in fact contradicts the �comment in the method) in
> the #at: methods that make a conversion from Number to Integer.
>
> If you comment that code out you'll see the VM #at: (via the primitive)
> will fail with Floats.