summaryrefslogtreecommitdiff
path: root/compiler/deSugar/DsMeta.hs
diff options
context:
space:
mode:
authorLuite Stegeman <stegeman@gmail.com>2018-01-08 08:42:30 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-05-22 16:59:39 -0400
commit4ba73e00c4887b58d85131601a15d00608acaa60 (patch)
treec68fe04ecc5482118a741b7fc4f00567a9eee609 /compiler/deSugar/DsMeta.hs
parent6efe04dee3f4c584e0cd043b8424718f0791d1be (diff)
downloadhaskell-4ba73e00c4887b58d85131601a15d00608acaa60.tar.gz
fix Template Haskell cross compilation on 64 bit compiler with 32 bit target
Diffstat (limited to 'compiler/deSugar/DsMeta.hs')
-rw-r--r--compiler/deSugar/DsMeta.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/deSugar/DsMeta.hs b/compiler/deSugar/DsMeta.hs
index 7e13fdcc36..303c7a08d3 100644
--- a/compiler/deSugar/DsMeta.hs
+++ b/compiler/deSugar/DsMeta.hs
@@ -1920,7 +1920,7 @@ globalVar name
; rep2 mk_varg [pkg,mod,occ] }
| otherwise
= do { MkC occ <- nameLit name
- ; MkC uni <- coreIntLit (getKey (getUnique name))
+ ; MkC uni <- coreIntegerLit (toInteger $ getKey (getUnique name))
; rep2 mkNameLName [occ,uni] }
where
mod = ASSERT( isExternalName name) nameModule name
@@ -2717,6 +2717,9 @@ coreIntLit :: Int -> DsM (Core Int)
coreIntLit i = do dflags <- getDynFlags
return (MkC (mkIntExprInt dflags i))
+coreIntegerLit :: Integer -> DsM (Core Integer)
+coreIntegerLit i = fmap MkC (mkIntegerExpr i)
+
coreVar :: Id -> Core TH.Name -- The Id has type Name
coreVar id = MkC (Var id)