summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2008-03-28 21:19:19 +0000
committerTim Chevalier <chevalier@alum.wellesley.edu>2008-03-28 21:19:19 +0000
commit0a9b1362c9103c17a9f662287fd65c8779bcf4ef (patch)
tree5ecc32453e438e4e1b5922feaac6e71b934f97be /compiler
parent81e51a265d315609cb28e190fc59ca690f5f5d6e (diff)
downloadhaskell-0a9b1362c9103c17a9f662287fd65c8779bcf4ef.tar.gz
Print out rational literals correctly in External Core
The External Core printer was printing out rational literals of the form: 2.0e-2 when the External Core grammar doesn't allow this. (This bug has apparently been there since the beginning...) It's now printing rationals in the same form that (show (r::Rational)) does. This requires a parser change as well (soon to come.)
Diffstat (limited to 'compiler')
-rw-r--r--compiler/coreSyn/PprExternalCore.lhs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/coreSyn/PprExternalCore.lhs b/compiler/coreSyn/PprExternalCore.lhs
index c58144c29c..dd75b62629 100644
--- a/compiler/coreSyn/PprExternalCore.lhs
+++ b/compiler/coreSyn/PprExternalCore.lhs
@@ -190,7 +190,9 @@ palt (Adefault e) =
plit :: Lit -> Doc
plit (Lint i t) = parens (integer i <> text "::" <> pty t)
-plit (Lrational r t) = parens (rational r <> text "::" <> pty t) -- might be better to print as two integers
+-- we use (text (show r)) because "(rational r)" was printing out things
+-- like "2.0e-2" (which isn't External Core)
+plit (Lrational r t) = parens (text (show r) <> text "::" <> pty t)
plit (Lchar c t) = parens (text ("\'" ++ escape [c] ++ "\'") <> text "::" <> pty t)
plit (Lstring s t) = parens (pstring s <> text "::" <> pty t)