X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FName.lhs;h=883668b0b95a31ae491192243738b4ff61b87220;hb=30b123f6d3a42f5899e89d435a0add50daa19413;hp=feda0b1009f90282f4327da611eac591ae7b0457;hpb=49c98d143c382a1341e1046f5ca00819a25691ba;p=ghc-hetmet.git diff --git a/compiler/basicTypes/Name.lhs b/compiler/basicTypes/Name.lhs index feda0b1..883668b 100644 --- a/compiler/basicTypes/Name.lhs +++ b/compiler/basicTypes/Name.lhs @@ -15,6 +15,7 @@ module Name ( mkInternalName, mkSystemName, mkSystemVarName, mkSysTvName, mkFCallName, mkIPName, + mkTickBoxOpName, mkExternalName, mkWiredInName, nameUnique, setNameUnique, @@ -220,6 +221,11 @@ mkFCallName :: Unique -> String -> Name mkFCallName uniq str = Name { n_uniq = getKey# uniq, n_sort = Internal, n_occ = mkVarOcc str, n_loc = noSrcLoc } +mkTickBoxOpName :: Unique -> String -> Name +mkTickBoxOpName uniq str + = Name { n_uniq = getKey# uniq, n_sort = Internal, + n_occ = mkVarOcc str, n_loc = noSrcLoc } + mkIPName :: Unique -> OccName -> Name mkIPName uniq occ = Name { n_uniq = getKey# uniq, @@ -254,8 +260,11 @@ localiseName n = n { n_sort = Internal } %************************************************************************ \begin{code} -hashName :: Name -> Int -hashName name = getKey (nameUnique name) +hashName :: Name -> Int -- ToDo: should really be Word +hashName name = getKey (nameUnique name) + 1 + -- The +1 avoids keys with lots of zeros in the ls bits, which + -- interacts badly with the cheap and cheerful multiplication in + -- hashExpr \end{code}