haskell-suite / haskell-src-exts

Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer
Other
193 stars 94 forks source link

DataKinds: No escaping of type level strings? #470

Open nomeata opened 1 year ago

nomeata commented 1 year ago

With this file:

{-# LANGUAGE DataKinds #-}

valueLevelString = "This is a value level string with a \""
type TypLevelString = "This is a type level string with a \""

it seems that prettyPrint does not escape the type level string:

ghci> parseFile "/tmp/Test.hs" >>= putStrLn . prettyPrint . fromParseResult
{-# LANGUAGE DataKinds #-}
valueLevelString = "This is a value level string with a \""

type TypLevelString = "This is a type level string with a ""
nomeata commented 1 year ago

This may be enough, unless there is a good reason that I don’t know why this wasn’t already done like this:

diff --git a/src/Language/Haskell/Exts/Pretty.hs b/src/Language/Haskell/Exts/Pretty.hs
index 8d39a2d..ded378b 100644
--- a/src/Language/Haskell/Exts/Pretty.hs
+++ b/src/Language/Haskell/Exts/Pretty.hs
@@ -890,7 +890,7 @@ instance  Pretty (Promoted l) where
   pretty p =
     case p of
       PromotedInteger _ n _ -> integer n
-      PromotedString _ s _ -> doubleQuotes $ text s
+      PromotedString _ s _ -> text (show s)
       PromotedCon _ hasQuote qn ->
         addQuote hasQuote (pretty qn)
       PromotedList _ hasQuote list ->