#BUGFIX by stefan
authorStefan Vogel <sv@exept.de>
Thu, 01 Nov 2018 12:35:48 +0100
changeset 23499 6bdd727d4170
parent 23498 5ac499e2cc2e
child 23500 0d771b1d1860
#BUGFIX by stefan class: ArithmeticValue added: #bitAndFromInteger: #bitOrFromInteger: #bitXorFromInteger: add missing methods
ArithmeticValue.st
--- a/ArithmeticValue.st	Thu Nov 01 12:35:23 2018 +0100
+++ b/ArithmeticValue.st	Thu Nov 01 12:35:48 2018 +0100
@@ -1081,6 +1081,54 @@
 
 !ArithmeticValue methodsFor:'double dispatching'!
 
+bitAndFromInteger:anInteger
+    "anInteger does not know how to do bitAnd: with the receiver -
+     retry the operation by coercing to Integer"
+
+    |selfAsInteger|
+
+    selfAsInteger := self asInteger.
+    self ~= selfAsInteger ifTrue:[
+        DomainError raiseRequestErrorString:'non-integer mask in bit-operation'.
+    ].
+
+    ^ anInteger bitAnd:selfAsInteger
+
+    "Created: / 01-11-2018 / 11:49:27 / Stefan Vogel"
+!
+
+bitOrFromInteger:anInteger
+    "anInteger does not know how to do bitOr: with the receiver -
+     retry the operation by coercing to Integer"
+
+    |selfAsInteger|
+
+    selfAsInteger := self asInteger.
+    self ~= selfAsInteger ifTrue:[
+        DomainError raiseRequestErrorString:'non-integer mask in bit-operation'.
+    ].
+
+    ^ anInteger bitOr:selfAsInteger
+
+    "Created: / 01-11-2018 / 11:49:09 / Stefan Vogel"
+!
+
+bitXorFromInteger:anInteger
+    "anInteger does not know how to do bitXor: with the receiver -
+     retry the operation by coercing to Integer"
+
+    |selfAsInteger|
+
+    selfAsInteger := self asInteger.
+    self ~= selfAsInteger ifTrue:[
+        DomainError raiseRequestErrorString:'non-integer mask in bit-operation'.
+    ].
+
+    ^ anInteger bitXor:selfAsInteger
+
+    "Created: / 01-11-2018 / 11:58:53 / Stefan Vogel"
+!
+
 differenceFromComplex:aComplex
     "aComplex does not know how to subtract the receiver -
      retry the operation by coercing to higher generality"
@@ -1770,6 +1818,7 @@
     ^ self * self
 ! !
 
+
 !ArithmeticValue methodsFor:'queries'!
 
 respondsToArithmetic