summaryrefslogtreecommitdiff
path: root/testsuite/tests
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests')
-rw-r--r--testsuite/tests/ghci/scripts/T4127.stdout2
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang11_B.hs2
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang12_B.hs2
-rw-r--r--testsuite/tests/th/T11629.hs4
-rw-r--r--testsuite/tests/th/T14888.stderr2
-rw-r--r--testsuite/tests/th/T1835.stdout4
-rw-r--r--testsuite/tests/th/T21794.hs43
-rw-r--r--testsuite/tests/th/T21794.stderr46
-rw-r--r--testsuite/tests/th/T5452.hs4
-rw-r--r--testsuite/tests/th/T5700a.hs6
-rw-r--r--testsuite/tests/th/T5886a.hs2
-rw-r--r--testsuite/tests/th/T7064.stdout4
-rw-r--r--testsuite/tests/th/T7532a.hs2
-rw-r--r--testsuite/tests/th/T8100.hs4
-rw-r--r--testsuite/tests/th/T8625.stdout2
-rw-r--r--testsuite/tests/th/T8761.stderr12
-rw-r--r--testsuite/tests/th/T8953.stderr6
-rw-r--r--testsuite/tests/th/T9262.stderr2
-rw-r--r--testsuite/tests/th/TH_ExplicitForAllRules.stdout4
-rw-r--r--testsuite/tests/th/TH_reifyExplicitForAllFams.stderr2
-rw-r--r--testsuite/tests/th/all.T1
21 files changed, 124 insertions, 32 deletions
diff --git a/testsuite/tests/ghci/scripts/T4127.stdout b/testsuite/tests/ghci/scripts/T4127.stdout
index 3d2fad2539..25582bf484 100644
--- a/testsuite/tests/ghci/scripts/T4127.stdout
+++ b/testsuite/tests/ghci/scripts/T4127.stdout
@@ -1 +1 @@
-[InstanceD Nothing [] (AppT (ConT GHC.Base.Monad) (AppT (ConT GHC.Tuple.Prim.(,)) (VarT a_0))) [ValD (VarP GHC.Base.>>=) (NormalB (VarE GHC.Err.undefined)) []]]
+[InstanceD Nothing Nothing [] (AppT (ConT GHC.Base.Monad) (AppT (ConT GHC.Tuple.Prim.(,)) (VarT a_0))) [ValD (VarP GHC.Base.>>=) (NormalB (VarE GHC.Err.undefined)) []]]
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang11_B.hs b/testsuite/tests/safeHaskell/safeLanguage/SafeLang11_B.hs
index 1f0052da51..604343c83d 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang11_B.hs
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang11_B.hs
@@ -11,6 +11,6 @@ mkSimpleClass name = do
TyConI (DataD [] dname [] Nothing cs _) <- reify name
((NormalC conname []):_) <- return cs
ClassI (ClassD [] cname [_] [] [SigD mname _]) _ <- reify ''Class
- return [InstanceD Nothing [] (AppT (ConT cname) (ConT dname)) [FunD mname
+ return [InstanceD Nothing Nothing [] (AppT (ConT cname) (ConT dname)) [FunD mname
[Clause [] (NormalB (ConE conname)) []]]]
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang12_B.hs b/testsuite/tests/safeHaskell/safeLanguage/SafeLang12_B.hs
index 50e7930c2d..b039d32353 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang12_B.hs
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang12_B.hs
@@ -13,6 +13,6 @@ mkSimpleClass name = do
TyConI (DataD [] dname [] Nothing cs _) <- reify name
((NormalC conname []):_) <- return cs
ClassI (ClassD [] cname [_] [] [SigD mname _]) _ <- reify ''Class
- return [InstanceD Nothing [] (AppT (ConT cname) (ConT dname)) [FunD mname
+ return [InstanceD Nothing Nothing [] (AppT (ConT cname) (ConT dname)) [FunD mname
[Clause [] (NormalB (ConE conname)) []]]]
diff --git a/testsuite/tests/th/T11629.hs b/testsuite/tests/th/T11629.hs
index 11373fd4cb..11ea28a5fe 100644
--- a/testsuite/tests/th/T11629.hs
+++ b/testsuite/tests/th/T11629.hs
@@ -21,8 +21,8 @@ instance E '[True, False]
instance E '[False, True]
do
- let getType (InstanceD _ _ ty _) = ty
- getType _ = error "getType: only defined for InstanceD"
+ let getType (InstanceD _ _ _ ty _) = ty
+ getType _ = error "getType: only defined for InstanceD"
failMsg a ty1 ty2 = fail $ "example " ++ a
++ ": ty1 /= ty2, where\n ty1 = "
diff --git a/testsuite/tests/th/T14888.stderr b/testsuite/tests/th/T14888.stderr
index fe77220edc..211b3f86e1 100644
--- a/testsuite/tests/th/T14888.stderr
+++ b/testsuite/tests/th/T14888.stderr
@@ -7,4 +7,4 @@ T14888.hs:18:22-60: Splicing expression
"class T14888.Functor' (f_0 :: * -> *)
where {T14888.fmap' :: forall (a_1 :: *) (b_2 :: *) .
(a_1 -> b_2) -> f_0 a_1 -> f_0 b_2}
-instance T14888.Functor' ((->) r_3)"
+instance forall (r_3 :: *). T14888.Functor' ((->) r_3)"
diff --git a/testsuite/tests/th/T1835.stdout b/testsuite/tests/th/T1835.stdout
index 5b21c0352c..1b87b76e3b 100644
--- a/testsuite/tests/th/T1835.stdout
+++ b/testsuite/tests/th/T1835.stdout
@@ -1,8 +1,8 @@
class GHC.Classes.Eq a_0 => Main.MyClass (a_0 :: *)
instance Main.MyClass Main.Foo
instance Main.MyClass Main.Baz
-instance GHC.Classes.Eq a_1 => Main.MyClass (Main.Quux a_1)
-instance GHC.Classes.Ord a_2 => Main.MyClass (Main.Quux2 a_2)
+instance forall (a_1 :: *). GHC.Classes.Eq a_1 => Main.MyClass (Main.Quux a_1)
+instance forall (a_2 :: *). GHC.Classes.Ord a_2 => Main.MyClass (Main.Quux2 a_2)
True
True
True
diff --git a/testsuite/tests/th/T21794.hs b/testsuite/tests/th/T21794.hs
new file mode 100644
index 0000000000..5b342df00d
--- /dev/null
+++ b/testsuite/tests/th/T21794.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE StandaloneKindSignatures #-}
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE QuantifiedConstraints #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+module T21794 where
+
+import Data.Kind
+$([d|
+ data P = L | R
+ data T (a :: P) where
+ A :: T a
+ B :: T R
+
+ type TConstraint = forall a . T a -> Constraint
+
+ type ForAllA1 :: TConstraint -> Constraint
+ class (forall a . constr @a A) => ForAllA1 constr
+ instance forall (constr :: TConstraint) . (forall a . constr @a A) => ForAllA1 constr
+
+ type ForAllA2 :: TConstraint -> Constraint
+ class (forall a . constr @a A) => ForAllA2 constr
+ deriving anyclass instance forall (constr :: TConstraint) . (forall a . constr @a A) => ForAllA2 constr
+
+ |])
+
+
+$([d|
+ type C :: forall {k} {l}. k -> l -> Constraint
+ class C a b
+
+ instance forall k (a :: k) (b :: Type). C a k
+ |]) \ No newline at end of file
diff --git a/testsuite/tests/th/T21794.stderr b/testsuite/tests/th/T21794.stderr
new file mode 100644
index 0000000000..4dddefab08
--- /dev/null
+++ b/testsuite/tests/th/T21794.stderr
@@ -0,0 +1,46 @@
+T21794.hs:(19,2)-(35,6): Splicing declarations
+ [d| type ForAllA1 :: TConstraint -> Constraint
+ type ForAllA2 :: TConstraint -> Constraint
+
+ data P = L | R
+ data T (a :: P)
+ where
+ A :: T a
+ B :: T R
+ type TConstraint = forall a. T a -> Constraint
+ class (forall a. constr @a A) => ForAllA1 constr
+ class (forall a. constr @a A) => ForAllA2 constr
+
+ instance forall (constr :: TConstraint). (forall a. constr @a A) =>
+ ForAllA1 constr
+
+ deriving anyclass instance forall (constr :: TConstraint). (forall a.
+ constr @a A) =>
+ ForAllA2 constr |]
+ ======>
+ data P = L | R
+ data T (a :: P)
+ where
+ A :: T a
+ B :: T 'R
+ type TConstraint = forall a. T a -> Constraint
+ type ForAllA1 :: TConstraint -> Constraint
+ class (forall a. constr @a 'A) => ForAllA1 constr
+ instance forall (constr :: TConstraint). (forall a.
+ constr @a 'A) =>
+ ForAllA1 constr
+ type ForAllA2 :: TConstraint -> Constraint
+ class (forall a. constr @a 'A) => ForAllA2 constr
+ deriving anyclass instance forall (constr :: TConstraint). (forall a.
+ constr @a 'A) =>
+ ForAllA2 constr
+T21794.hs:(38,2)-(43,6): Splicing declarations
+ [d| type C :: forall {k} {l}. k -> l -> Constraint
+
+ class C a b
+
+ instance forall k (a :: k) (b :: Type). C a k |]
+ ======>
+ type C :: forall {k} {l}. k -> l -> Constraint
+ class C a b
+ instance forall k (a :: k) (b :: Type). C a k
diff --git a/testsuite/tests/th/T5452.hs b/testsuite/tests/th/T5452.hs
index c1de6e8642..86f01f37bd 100644
--- a/testsuite/tests/th/T5452.hs
+++ b/testsuite/tests/th/T5452.hs
@@ -11,8 +11,8 @@ class D (f :: Type -> Type)
instance C ((,) Int)
$(do { ClassI _ [inst_dec] <- reify ''C
- ; let InstanceD o cxt (AppT _ ty) _ = inst_dec
- ; return [InstanceD o cxt
+ ; let InstanceD o tvs cxt (AppT _ ty) _ = inst_dec
+ ; return [InstanceD o tvs cxt
(foldl AppT (ConT ''D) [ty])
[]
] })
diff --git a/testsuite/tests/th/T5700a.hs b/testsuite/tests/th/T5700a.hs
index 39d39b16a1..d35b56e76c 100644
--- a/testsuite/tests/th/T5700a.hs
+++ b/testsuite/tests/th/T5700a.hs
@@ -8,8 +8,8 @@ class C a where
mkC :: Name -> Q [Dec]
mkC n = return
- [InstanceD Nothing [] (AppT (ConT ''C) (ConT n))
+ [InstanceD Nothing Nothing [] (AppT (ConT ''C) (ConT n))
[ FunD 'inlinable [Clause [WildP] (NormalB (ConE '())) []],
- PragmaD (InlineP 'inlinable Inline FunLike AllPhases)
- ]
+ PragmaD (InlineP 'inlinable Inline FunLike AllPhases)
+ ]
]
diff --git a/testsuite/tests/th/T5886a.hs b/testsuite/tests/th/T5886a.hs
index 66992014f9..29f3d2f90a 100644
--- a/testsuite/tests/th/T5886a.hs
+++ b/testsuite/tests/th/T5886a.hs
@@ -11,5 +11,5 @@ class C α where
type AT α ∷ Type
bang ∷ DecsQ
-bang = return [InstanceD Nothing [] (AppT (ConT ''C) (ConT ''Int))
+bang = return [InstanceD Nothing Nothing [] (AppT (ConT ''C) (ConT ''Int))
[TySynInstD (TySynEqn Nothing (AppT (ConT ''AT) (ConT ''Int)) (ConT ''Int))]]
diff --git a/testsuite/tests/th/T7064.stdout b/testsuite/tests/th/T7064.stdout
index b5f8c47103..17dd4f8dfb 100644
--- a/testsuite/tests/th/T7064.stdout
+++ b/testsuite/tests/th/T7064.stdout
@@ -19,8 +19,8 @@ instance GHC.Classes.Eq a_0 => GHC.Classes.Eq (T_1 a_0)
GHC.Real.fromIntegral
= GHC.Base.id :: a_0 -> a_0 #-}
{-# RULES "rule2" [1]
- forall (x_0 :: a_1) . GHC.Real.fromIntegral x_0
+ forall (x_0 :: a_1). GHC.Real.fromIntegral x_0
= x_0 #-}
{-# RULES "rule3" [~1]
- forall (x_0 :: a_1) . GHC.Real.fromIntegral x_0
+ forall (x_0 :: a_1). GHC.Real.fromIntegral x_0
= x_0 #-}
diff --git a/testsuite/tests/th/T7532a.hs b/testsuite/tests/th/T7532a.hs
index d28a59e87c..eccd0a95a9 100644
--- a/testsuite/tests/th/T7532a.hs
+++ b/testsuite/tests/th/T7532a.hs
@@ -10,6 +10,6 @@ class C a where
bang' :: DecsQ
bang' = return [
- InstanceD Nothing [] (AppT (ConT ''C) (ConT ''Int)) [
+ InstanceD Nothing Nothing [] (AppT (ConT ''C) (ConT ''Int)) [
DataInstD [] Nothing (AppT (ConT ''D) (ConT ''Int)) Nothing [
NormalC (mkName "T") []] []]]
diff --git a/testsuite/tests/th/T8100.hs b/testsuite/tests/th/T8100.hs
index 3551251299..2925007f56 100644
--- a/testsuite/tests/th/T8100.hs
+++ b/testsuite/tests/th/T8100.hs
@@ -9,8 +9,8 @@ data Bar = Bar Int
$( do decs <- [d| deriving instance Eq a => Eq (Foo a)
deriving instance Ord a => Ord (Foo a) |]
- return ( StandaloneDerivD Nothing [] (ConT ''Eq `AppT` ConT ''Bar)
- : StandaloneDerivD Nothing [] (ConT ''Ord `AppT` ConT ''Bar)
+ return ( StandaloneDerivD Nothing Nothing [] (ConT ''Eq `AppT` ConT ''Bar)
+ : StandaloneDerivD Nothing Nothing [] (ConT ''Ord `AppT` ConT ''Bar)
: decs ) )
blah :: Ord a => Foo a -> Foo a -> Ordering
diff --git a/testsuite/tests/th/T8625.stdout b/testsuite/tests/th/T8625.stdout
index 13e058d15c..f6c1db5013 100644
--- a/testsuite/tests/th/T8625.stdout
+++ b/testsuite/tests/th/T8625.stdout
@@ -1,2 +1,2 @@
-[InstanceD Nothing [AppT (AppT EqualityT (VarT y_0)) (AppT (AppT ArrowT (VarT t_1)) (VarT t_1))] (AppT (ConT Ghci1.Member) (ConT GHC.Types.Bool)) []]
+[InstanceD Nothing Nothing [AppT (AppT EqualityT (VarT y_0)) (AppT (AppT ArrowT (VarT t_1)) (VarT t_1))] (AppT (ConT Ghci1.Member) (ConT GHC.Types.Bool)) []]
[SigD f_4 (ForallT [] [AppT (AppT EqualityT (VarT y_2)) (AppT (AppT ArrowT (VarT t_3)) (VarT t_3))] (AppT (AppT ArrowT (VarT y_2)) (VarT t_3))),FunD f_4 [Clause [VarP x_5] (NormalB (VarE x_5)) []]]
diff --git a/testsuite/tests/th/T8761.stderr b/testsuite/tests/th/T8761.stderr
index 0817e4b7a6..9c2bd1604f 100644
--- a/testsuite/tests/th/T8761.stderr
+++ b/testsuite/tests/th/T8761.stderr
@@ -124,8 +124,8 @@ T8761.hs:(71,1)-(105,39): Splicing declarations
pattern T8761.P :: GHC.Types.Bool
pattern T8761.Pe :: () => forall (a_0 :: *) . a_0 -> T8761.Ex
pattern T8761.Pu :: forall (a_0 :: *) . a_0 -> a_0
-pattern T8761.Pue :: forall (a_0 :: *) . () => forall (b_1 :: *) .
- a_0 -> b_1 -> (a_0, T8761.Ex)
+pattern T8761.Pue :: forall (a_0 :: *). () => forall (b_1 :: *) .
+ a_0 -> b_1 -> (a_0, T8761.Ex)
pattern T8761.Pur :: forall (a_0 :: *) . (GHC.Num.Num a_0,
GHC.Classes.Eq a_0) =>
a_0 -> [a_0]
@@ -141,10 +141,10 @@ pattern T8761.Purep :: forall (a_0 :: *) . (GHC.Num.Num a_0,
a_0 -> b_1 -> ([a_0], T8761.ExProv)
pattern T8761.Pep :: () => forall (a_0 :: *) . GHC.Show.Show a_0 =>
a_0 -> T8761.ExProv
-pattern T8761.Pup :: forall (a_0 :: *) . () => GHC.Show.Show a_0 =>
- a_0 -> T8761.UnivProv a_0
-pattern T8761.Puep :: forall (a_0 :: *) . () => forall (b_1 :: *) . GHC.Show.Show b_1 =>
- a_0 -> b_1 -> (T8761.ExProv, a_0)
+pattern T8761.Pup :: forall (a_0 :: *). () => GHC.Show.Show a_0 =>
+ a_0 -> T8761.UnivProv a_0
+pattern T8761.Puep :: forall (a_0 :: *). () => forall (b_1 :: *) . GHC.Show.Show b_1 =>
+ a_0 -> b_1 -> (T8761.ExProv, a_0)
T8761.hs:(108,1)-(117,25): Splicing declarations
do infos <- mapM
reify
diff --git a/testsuite/tests/th/T8953.stderr b/testsuite/tests/th/T8953.stderr
index ba19e035b9..e95917763b 100644
--- a/testsuite/tests/th/T8953.stderr
+++ b/testsuite/tests/th/T8953.stderr
@@ -9,8 +9,10 @@ T8953.a :: Data.Proxy.Proxy (Data.Proxy.Proxy :: * -> *)
T8953.b :: Data.Proxy.Proxy (Data.Proxy.Proxy :: (* -> *) -> *)
type T8953.StarProxy (a_0 :: *) = Data.Proxy.Proxy a_0
class T8953.PC (a_0 :: k_1)
-instance T8953.PC (Data.Proxy.Proxy :: (k_2 -> *) -> *)
-instance T8953.PC (a_3 :: *)
+instance forall (k_2 :: *). T8953.PC (Data.Proxy.Proxy :: (k_2 ->
+ *) ->
+ *)
+instance forall (a_3 :: *). T8953.PC (a_3 :: *)
type family T8953.F (a_0 :: *) :: k_1
type instance T8953.F GHC.Types.Char = T8953.G (T8953.T1 :: * ->
(* -> *) -> *)
diff --git a/testsuite/tests/th/T9262.stderr b/testsuite/tests/th/T9262.stderr
index 8a18eadb2a..391c9720f0 100644
--- a/testsuite/tests/th/T9262.stderr
+++ b/testsuite/tests/th/T9262.stderr
@@ -1 +1 @@
-instance GHC.Classes.Eq a_0 => GHC.Classes.Eq [a_0]
+instance forall (a_0 :: *). GHC.Classes.Eq a_0 => GHC.Classes.Eq [a_0]
diff --git a/testsuite/tests/th/TH_ExplicitForAllRules.stdout b/testsuite/tests/th/TH_ExplicitForAllRules.stdout
index 635fce750e..754641e9d7 100644
--- a/testsuite/tests/th/TH_ExplicitForAllRules.stdout
+++ b/testsuite/tests/th/TH_ExplicitForAllRules.stdout
@@ -1,3 +1,3 @@
{-# RULES "example"
- forall a_0 . forall (x_1 :: a_0) . GHC.Base.id x_1
- = x_1 #-} \ No newline at end of file
+ forall a_0. forall (x_1 :: a_0). GHC.Base.id x_1
+ = x_1 #-}
diff --git a/testsuite/tests/th/TH_reifyExplicitForAllFams.stderr b/testsuite/tests/th/TH_reifyExplicitForAllFams.stderr
index 0fe28a5676..8488b9af81 100644
--- a/testsuite/tests/th/TH_reifyExplicitForAllFams.stderr
+++ b/testsuite/tests/th/TH_reifyExplicitForAllFams.stderr
@@ -3,7 +3,7 @@ data instance forall (a_1 :: *). TH_reifyExplicitForAllFams.F (GHC.Maybe.Maybe a
= TH_reifyExplicitForAllFams.MkF a_1
class TH_reifyExplicitForAllFams.C (a_0 :: *)
where {type TH_reifyExplicitForAllFams.G (a_0 :: *) (b_1 :: *) :: *}
-instance TH_reifyExplicitForAllFams.C [a_2]
+instance forall (a_2 :: *). TH_reifyExplicitForAllFams.C [a_2]
type family TH_reifyExplicitForAllFams.G (a_0 :: *) (b_1 :: *) :: *
type instance forall (a_2 :: *)
(b_3 :: *). TH_reifyExplicitForAllFams.G [a_2]
diff --git a/testsuite/tests/th/all.T b/testsuite/tests/th/all.T
index 971fb39056..947e1067c7 100644
--- a/testsuite/tests/th/all.T
+++ b/testsuite/tests/th/all.T
@@ -556,4 +556,5 @@ test('T21920', normal, compile_and_run, [''])
test('T21723', normal, compile_and_run, [''])
test('T21942', normal, compile_and_run, [''])
test('T22784', normal, compile, ['-v0 -ddump-splices -dsuppress-uniques'])
+test('T21794', normal, compile, ['-v0 -ddump-splices -dsuppress-uniques'])
test('TH_fun_par', normal, compile, [''])