Merge pull request #741 from expipiplus1/joe-fix-qq

Fix QQ Text lifting error
This commit is contained in:
Joe Hermaszewski 2020-11-01 11:47:49 +08:00 committed by GitHub
commit 75e3a73bbe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 1 deletions

View File

@ -17,6 +17,7 @@ import qualified Data.Text as Text
import Data.List.NonEmpty ( NonEmpty(..) )
import Data.Maybe ( mapMaybe )
import Language.Haskell.TH
import Language.Haskell.TH.Syntax ( liftString )
import Language.Haskell.TH.Quote
import Nix.Atoms
import Nix.Expr
@ -27,7 +28,12 @@ quoteExprExp s = do
expr <- case parseNixText (Text.pack s) of
Failure err -> fail $ show err
Success e -> pure e
dataToExpQ (const Nothing `extQ` metaExp (freeVars expr)) expr
dataToExpQ
(const Nothing `extQ` metaExp (freeVars expr) `extQ` (Just . liftText))
expr
where
liftText :: Text.Text -> Q Exp
liftText txt = AppE (VarE 'Text.pack) <$> liftString (Text.unpack txt)
quoteExprPat :: String -> PatQ
quoteExprPat s = do