diff options
Diffstat (limited to 'testsuite/tests')
-rw-r--r-- | testsuite/tests/ghci/scripts/T4127.stdout | 2 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/safeLanguage/SafeLang11_B.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/safeLanguage/SafeLang12_B.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/th/T11629.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/th/T14888.stderr | 2 | ||||
-rw-r--r-- | testsuite/tests/th/T1835.stdout | 4 | ||||
-rw-r--r-- | testsuite/tests/th/T21794.hs | 43 | ||||
-rw-r--r-- | testsuite/tests/th/T21794.stderr | 46 | ||||
-rw-r--r-- | testsuite/tests/th/T5452.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/th/T5700a.hs | 6 | ||||
-rw-r--r-- | testsuite/tests/th/T5886a.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/th/T7064.stdout | 4 | ||||
-rw-r--r-- | testsuite/tests/th/T7532a.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/th/T8100.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/th/T8625.stdout | 2 | ||||
-rw-r--r-- | testsuite/tests/th/T8761.stderr | 12 | ||||
-rw-r--r-- | testsuite/tests/th/T8953.stderr | 6 | ||||
-rw-r--r-- | testsuite/tests/th/T9262.stderr | 2 | ||||
-rw-r--r-- | testsuite/tests/th/TH_ExplicitForAllRules.stdout | 4 | ||||
-rw-r--r-- | testsuite/tests/th/TH_reifyExplicitForAllFams.stderr | 2 | ||||
-rw-r--r-- | testsuite/tests/th/all.T | 1 |
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, ['']) |