1
1
mirror of https://github.com/github/semantic.git synced 2024-12-18 12:21:57 +03:00

use Data.Scientific to convert digit

This commit is contained in:
Ayman Nadeem 2018-08-20 11:10:56 -04:00
parent 51e19ee242
commit 6b99b321ce

View File

@ -19,7 +19,7 @@ import qualified Data.Abstract.Number as Number
import Data.Bits
import Data.Coerce
import Data.List (genericIndex, genericLength)
import Data.Scientific (Scientific)
import Data.Scientific (Scientific, coefficient)
import Data.Scientific.Exts
import qualified Data.Set as Set
import Data.Word
@ -158,6 +158,7 @@ instance ( Coercible body (Eff effects)
, Member (Resumable (BaseError (ValueError address body))) effects
, Member (Resumable (BaseError (AddressError address (Value address body)))) effects
, Member (State (Heap address (Value address body))) effects
, Member Trace effects
, Ord address
, Show address
)
@ -272,6 +273,7 @@ instance ( Coercible body (Eff effects)
liftBitwise2 operator left right
| (Integer (Number.Integer i), Integer (Number.Integer j)) <- pair = pure . integer $ operator i j
| (Float (Number.Decimal i), Float (Number.Decimal j)) <- pair = pure . integer $ operator (coefficient (normalize i)) (coefficient (normalize j))
| otherwise = throwValueError (Bitwise2Error left right)
where pair = (left, right)