on master help sign in
Use Word64 for hash. (#3319)
5f8389fNiklas Larsson
src/Idris/Elab/Clause.hs+4−2
@@ -51,6 +51,8 @@ import Control.Monad.State.Strict as State
51import qualified Control.Monad.State.Lazy as LState
51import qualified Control.Monad.State.Lazy as LState
52import Data.List
52import Data.List
53import Data.Maybe
53import Data.Maybe
54+import Data.Word
55+
54import Debug.Trace
56import Debug.Trace
55
57
56import qualified Data.Map as Map
58import qualified Data.Map as Map
@@ -487,9 +489,9 @@ elabPE info fc caller r =
487
489
488 -- Simple but effective string hashing...
490 -- Simple but effective string hashing...
489 -- Keep it to 32 bits for readability/debuggability
491 -- Keep it to 32 bits for readability/debuggability
490− qhash :: Int -> String -> String
492+ qhash :: Word64 -> String -> String
491 qhash hash [] = showHex (abs hash `mod` 0xffffffff) ""
493 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
493
495
494-- | Checks if the clause is a possible left hand side.
496-- | Checks if the clause is a possible left hand side.
495checkPossible :: ElabInfo -> FC -> Bool -> Name -> PTerm -> Idris Bool
497checkPossible :: ElabInfo -> FC -> Bool -> Name -> PTerm -> Idris Bool