1) 3 ~= 3.0e was changed from ~= to = upon coercion. That's bad. :-) It didn't happen for 3 ~= 3.0 because a primitive took care of that operation.

2) This 3.0e was actually meant to be a 3.0, but changed to a FloatE by the RBParser.

Both patches together allow Complex to be converted successfully.

Paolo
* auto-adding [EMAIL PROTECTED]/smalltalk--devo--2.2--patch-505 to greedy 
revision library /Users/bonzinip/Archives/revlib
* found immediate ancestor revision in library ([EMAIL 
PROTECTED]/smalltalk--devo--2.2--patch-504)
* patching for this revision ([EMAIL PROTECTED]/smalltalk--devo--2.2--patch-505)
--- orig/kernel/Number.st
+++ mod/kernel/Number.st
@@ -241,7 +241,7 @@ retryInequalityCoercing: aNumber
     aNumGen := aNumber generality.
     aNumGen isNil ifTrue: [ ^true ].
 
-    selfGen > aNumGen ifTrue: [ ^false == (self = (self coerce: aNumber)) ].
+    selfGen > aNumGen ifTrue: [ ^false == (self ~= (self coerce: aNumber)) ].
     selfGen < aNumGen ifTrue: [ ^false == ((aNumber coerce: self) ~= aNumber) 
].
 
     self retryError
* auto-adding [EMAIL PROTECTED]/smalltalk--devo--2.2--patch-506 to greedy 
revision library /Users/bonzinip/Archives/revlib
* found immediate ancestor revision in library ([EMAIL 
PROTECTED]/smalltalk--devo--2.2--patch-505)
* patching for this revision ([EMAIL PROTECTED]/smalltalk--devo--2.2--patch-506)
--- orig/packages/stinst/parser/RBParser.st
+++ mod/packages/stinst/parser/RBParser.st
@@ -810,7 +810,7 @@ scanNumberValue
     currentCharacter == $q ifTrue: [ num := num asFloatQ ] ifFalse: [
        ^exponent isNil
            ifTrue: [ num ]
-           ifFalse: [ num asFloatE * (base raisedToInteger: exponent) ]
+           ifFalse: [ num asFloatD * (base raisedToInteger: exponent) ]
     ]]].
 
     ch := currentCharacter.
_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to