summaryrefslogtreecommitdiff
path: root/compiler/GHC/Core/Make.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Core/Make.hs')
-rw-r--r--compiler/GHC/Core/Make.hs17
1 files changed, 10 insertions, 7 deletions
diff --git a/compiler/GHC/Core/Make.hs b/compiler/GHC/Core/Make.hs
index 40911f2a89..ccaa385801 100644
--- a/compiler/GHC/Core/Make.hs
+++ b/compiler/GHC/Core/Make.hs
@@ -14,7 +14,7 @@ module GHC.Core.Make (
-- * Constructing boxed literals
mkWordExpr, mkWordExprWord,
- mkIntExpr, mkIntExprInt,
+ mkIntExpr, mkIntExprInt, mkUncheckedIntExpr,
mkIntegerExpr, mkNaturalExpr,
mkFloatExpr, mkDoubleExpr,
mkCharExpr, mkStringExpr, mkStringExprFS, mkStringExprFSWith,
@@ -253,6 +253,11 @@ castBottomExpr e res_ty
mkIntExpr :: Platform -> Integer -> CoreExpr -- Result = I# i :: Int
mkIntExpr platform i = mkCoreConApps intDataCon [mkIntLit platform i]
+-- | Create a 'CoreExpr' which will evaluate to the given @Int@. Don't check
+-- that the number is in the range of the target platform @Int@
+mkUncheckedIntExpr :: Integer -> CoreExpr -- Result = I# i :: Int
+mkUncheckedIntExpr i = mkCoreConApps intDataCon [Lit (mkLitIntUnchecked i)]
+
-- | Create a 'CoreExpr' which will evaluate to the given @Int@
mkIntExprInt :: Platform -> Int -> CoreExpr -- Result = I# i :: Int
mkIntExprInt platform i = mkCoreConApps intDataCon [mkIntLitInt platform i]
@@ -266,14 +271,12 @@ mkWordExprWord :: Platform -> Word -> CoreExpr
mkWordExprWord platform w = mkCoreConApps wordDataCon [mkWordLitWord platform w]
-- | Create a 'CoreExpr' which will evaluate to the given @Integer@
-mkIntegerExpr :: MonadThings m => Integer -> m CoreExpr -- Result :: Integer
-mkIntegerExpr i = do t <- lookupTyCon integerTyConName
- return (Lit (mkLitInteger i (mkTyConTy t)))
+mkIntegerExpr :: Integer -> CoreExpr -- Result :: Integer
+mkIntegerExpr i = Lit (mkLitInteger i)
-- | Create a 'CoreExpr' which will evaluate to the given @Natural@
-mkNaturalExpr :: MonadThings m => Integer -> m CoreExpr
-mkNaturalExpr i = do t <- lookupTyCon naturalTyConName
- return (Lit (mkLitNatural i (mkTyConTy t)))
+mkNaturalExpr :: Integer -> CoreExpr
+mkNaturalExpr i = Lit (mkLitNatural i)
-- | Create a 'CoreExpr' which will evaluate to the given @Float@
mkFloatExpr :: Float -> CoreExpr