on master help sign in
Use Word64 for hash. (#3319)

0xffffffff isn't in Int on 32-bit systems. Fixes #3316

commit5f8389fe731107370a92a9948884ec91bc3c927a authorNiklas Larsson <metaniklas@gmail.com> dateThu 4 Aug 2016, 00:33 (10 years ago) parent214e57e
1 file changed+4−2
src/Idris/Elab/Clause.hs+4−2
src/Idris/Elab/Clause.hs+4−2
@@ -51,6 +51,8 @@ import Control.Monad.State.Strict as State
5151import qualified Control.Monad.State.Lazy as LState
5252import Data.List
5353import Data.Maybe
54+import Data.Word
55+
5456import Debug.Trace
5557
5658import qualified Data.Map as Map
@@ -487,9 +489,9 @@ elabPE info fc caller r =
487489
488490 -- Simple but effective string hashing...
489491 -- Keep it to 32 bits for readability/debuggability
490− qhash :: Int -> String -> String
492+ qhash :: Word64 -> String -> String
491493 qhash hash [] = showHex (abs hash `mod` 0xffffffff) ""
492− qhash hash (x:xs) = qhash (hash * 33 + fromEnum x) xs
494+ qhash hash (x:xs) = qhash (hash * 33 + fromIntegral(fromEnum x)) xs
493495
494496-- | Checks if the clause is a possible left hand side.
495497checkPossible :: ElabInfo -> FC -> Bool -> Name -> PTerm -> Idris Bool