summaryrefslogtreecommitdiff
path: root/libraries/template-haskell
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/template-haskell')
-rw-r--r--libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs10
-rw-r--r--libraries/template-haskell/Language/Haskell/TH/Syntax.hs2
-rw-r--r--libraries/template-haskell/tests/pragCompletePpr.hs4
3 files changed, 11 insertions, 5 deletions
diff --git a/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs b/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
index 67017d4926..25b7062da8 100644
--- a/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
+++ b/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
@@ -513,8 +513,14 @@ pragAnnD target expr
pragLineD :: Quote m => Int -> String -> m Dec
pragLineD line file = pure $ PragmaD $ LineP line file
-pragCompleteD :: Quote m => [Name] -> Maybe Name -> m Dec
-pragCompleteD cls mty = pure $ PragmaD $ CompleteP cls mty
+pragCompleteD :: Quote m => [Name] -> Maybe (m Type) -> m Dec
+pragCompleteD cls mty =
+ case mty of
+ Nothing -> pure $ PragmaD $ CompleteP cls Nothing
+ Just ty ->
+ do
+ t <- ty
+ pure $ PragmaD $ CompleteP cls (Just t)
dataInstD :: Quote m => m Cxt -> (Maybe [m (TyVarBndr ())]) -> m Type -> Maybe (m Kind) -> [m Con]
-> [m DerivClause] -> m Dec
diff --git a/libraries/template-haskell/Language/Haskell/TH/Syntax.hs b/libraries/template-haskell/Language/Haskell/TH/Syntax.hs
index 6508c07a65..3dad480bc2 100644
--- a/libraries/template-haskell/Language/Haskell/TH/Syntax.hs
+++ b/libraries/template-haskell/Language/Haskell/TH/Syntax.hs
@@ -2355,7 +2355,7 @@ data Pragma = InlineP Name Inline RuleMatch Phases
| RuleP String (Maybe [TyVarBndr ()]) [RuleBndr] Exp Exp Phases
| AnnP AnnTarget Exp
| LineP Int String
- | CompleteP [Name] (Maybe Name)
+ | CompleteP [Name] (Maybe Type)
-- ^ @{ {\-\# COMPLETE C_1, ..., C_i [ :: T ] \#-} }@
deriving( Show, Eq, Ord, Data, Generic )
diff --git a/libraries/template-haskell/tests/pragCompletePpr.hs b/libraries/template-haskell/tests/pragCompletePpr.hs
index cb06cdb10d..60fd477667 100644
--- a/libraries/template-haskell/tests/pragCompletePpr.hs
+++ b/libraries/template-haskell/tests/pragCompletePpr.hs
@@ -1,7 +1,7 @@
module Main (main) where
import Language.Haskell.TH.Ppr (ppr)
-import Language.Haskell.TH.Syntax (Dec (PragmaD), Pragma (CompleteP), mkName)
+import Language.Haskell.TH.Syntax (Dec (PragmaD), Pragma (CompleteP), mkName, Type(ConT))
main :: IO ()
-main = print $ ppr $ PragmaD $ CompleteP [mkName "Foo", mkName "Bar"] $ Just $ mkName "Bar"
+main = print $ ppr $ PragmaD $ CompleteP [mkName "Foo", mkName "Bar"] $ Just (ConT (mkName "Bar"))