Some Aconcagua 2.0 test fail in the latest version. The reason is related to
the changes made to ScaledDecimal that now does a #coerce:The coerce sends
the message isFraction, but a Measure could be a fraction but not an
instance of class Fraction, for example: 1/2 meters.
I know this could sound rare, but I think it is reasonable. That means that
isFraction could respond true even though the object is not instance of
Fraction.
Therefore, I had to change the #coerce: method to this:

coerce: aNumber
"Note: this quick hack could be replaced by double dispatching"
 aNumber class = self class ifTrue: [^self class newFromNumber: aNumber
scale: (scale max: aNumber scale)].
((aNumber class = Fraction) or: [aNumber isInteger]) ifTrue: [^self class
newFromNumber: aNumber scale: scale].
^aNumber

Instead of "aNumber isFraction" now it does "aNumber class = Fraction". (I
can not use isKindOf: because MeasureBagFraction is subclass of Fraction and
would not work properly).

So, I do not know if it is a good idea to open a defect on this because the
comment of the method says it is a quich hack... so maybe the best thing to
do is for that person that is doing these changes to run also the Aconcagua
test to see if everything keeps working after the changes or contact me
before releasing the changes to check Aconcagua works fine.

Bye,
Hernan.
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to