From d9d3edfbb840189ea493af4a8b6342ff0b4c072e Mon Sep 17 00:00:00 2001 From: simonpj Date: Fri, 11 Jul 2003 08:53:26 +0000 Subject: [PATCH] [project @ 2003-07-11 08:53:25 by simonpj] Fix the big-char-literal parsing issue in External Core, correctly this time --- ghc/compiler/coreSyn/MkExternalCore.lhs | 5 ++--- ghc/compiler/parser/ParserCore.y | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ghc/compiler/coreSyn/MkExternalCore.lhs b/ghc/compiler/coreSyn/MkExternalCore.lhs index 569655c..77c2299 100644 --- a/ghc/compiler/coreSyn/MkExternalCore.lhs +++ b/ghc/compiler/coreSyn/MkExternalCore.lhs @@ -26,7 +26,6 @@ import IdInfo import Id ( idUnfolding ) import CoreTidy ( tidyExpr ) import VarEnv ( emptyTidyEnv ) -import TysPrim ( intPrimTy ) import Literal import Name import CostCentre @@ -165,8 +164,8 @@ make_lit :: Literal -> C.Lit make_lit l = case l of MachChar i | i <= 0xff -> C.Lchar (chr i) t - MachChar i | otherwise -> C.Lint (toEnum i) (make_ty intPrimTy) - -- For 'big' characters, use an integer + MachChar i | otherwise -> C.Lint (toEnum i) t + -- For big characters, use an integer literal with a character type sig MachStr s -> C.Lstring (unpackFS s) t MachNullAddr -> C.Lint 0 t MachInt i -> C.Lint i t diff --git a/ghc/compiler/parser/ParserCore.y b/ghc/compiler/parser/ParserCore.y index 1cd7d6a..6a7fb1d 100644 --- a/ghc/compiler/parser/ParserCore.y +++ b/ghc/compiler/parser/ParserCore.y @@ -263,6 +263,7 @@ convIntLit :: Integer -> RdrNameHsType -> Literal convIntLit i (HsTyVar n) | n == intPrimRdrName = MachInt i | n == wordPrimRdrName = MachWord i + | n == charPrimRdrName = MachChar (fromInteger i) convIntLit i aty = pprPanic "Unknown integer literal type" (ppr aty $$ ppr intPrimRdrName) @@ -277,6 +278,7 @@ convRatLit i aty wordPrimRdrName, intPrimRdrName, floatPrimRdrName, doublePrimRdrName :: RdrName wordPrimRdrName = nameRdrName wordPrimTyConName intPrimRdrName = nameRdrName intPrimTyConName +charPrimRdrName = nameRdrName charPrimTyConName floatPrimRdrName = nameRdrName floatPrimTyConName doublePrimRdrName = nameRdrName doublePrimTyConName -- 1.7.10.4