diff options
author | Jose Pedro Magalhaes <jpm@cs.uu.nl> | 2011-05-04 11:16:36 +0200 |
---|---|---|
committer | Jose Pedro Magalhaes <jpm@cs.uu.nl> | 2011-05-04 11:16:36 +0200 |
commit | 26ea1e825cd07e3b179aa4a0b1ba615b4787404b (patch) | |
tree | 84c6b3d64f3802f7cd2857e508682d98368fc743 /testsuite/tests/ghc-regress | |
parent | 92af81751072c7a18abf87173aa844432cbaa59f (diff) | |
download | haskell-26ea1e825cd07e3b179aa4a0b1ba615b4787404b.tar.gz |
Adapt the testsuite to the recent ghc-generics changes.
Diffstat (limited to 'testsuite/tests/ghc-regress')
15 files changed, 69 insertions, 37 deletions
diff --git a/testsuite/tests/ghc-regress/generics/CanDoRep0.hs b/testsuite/tests/ghc-regress/generics/CanDoRep0.hs new file mode 100644 index 0000000000..d5699af472 --- /dev/null +++ b/testsuite/tests/ghc-regress/generics/CanDoRep0.hs @@ -0,0 +1,23 @@ +{-# LANGUAGE Generics #-} +{-# LANGUAGE TypeOperators #-} + +module CanDoRep0 where + +import GHC.Generics (Representable0) + + +-- We should be able to generate a generic representation for these types +data A + deriving Representable0 + +data B a + deriving Representable0 + +data C = C0 | C1 + deriving Representable0 + +data D a = D0 | D1 { d11 :: a, d12 :: (D a) } + deriving Representable0 + +data (:*:) a b = a :*: b + deriving Representable0 diff --git a/testsuite/tests/ghc-regress/generics/cannotDoRep0.hs b/testsuite/tests/ghc-regress/generics/CannotDoRep0.hs index 97ade74989..c5c50d1108 100644 --- a/testsuite/tests/ghc-regress/generics/cannotDoRep0.hs +++ b/testsuite/tests/ghc-regress/generics/CannotDoRep0.hs @@ -1,7 +1,7 @@ {-# LANGUAGE DeriveRepresentable #-} {-# LANGUAGE ExistentialQuantification #-} -module ShouldFail0 where +module CannotDoRep0 where import GHC.Generics diff --git a/testsuite/tests/ghc-regress/generics/cannotDoRep0.stderr b/testsuite/tests/ghc-regress/generics/CannotDoRep0.stderr index 5604d72f91..0419580ac6 100644 --- a/testsuite/tests/ghc-regress/generics/cannotDoRep0.stderr +++ b/testsuite/tests/ghc-regress/generics/CannotDoRep0.stderr @@ -1,5 +1,5 @@ -cannotDoRep0.hs:9:45: +CannotDoRep0.hs:9:45: Can't make a derived instance of `Representable0 Dynamic': Cannot derive Representable for type Dynamic In the data type declaration for `Dynamic' diff --git a/testsuite/tests/ghc-regress/generics/cannotDoRep1.hs b/testsuite/tests/ghc-regress/generics/CannotDoRep1.hs index 49d7218974..63a16667a1 100644 --- a/testsuite/tests/ghc-regress/generics/cannotDoRep1.hs +++ b/testsuite/tests/ghc-regress/generics/CannotDoRep1.hs @@ -1,6 +1,6 @@ {-# LANGUAGE DeriveRepresentable #-} -module ShouldFail1 where +module CannotDoRep1 where import GHC.Generics diff --git a/testsuite/tests/ghc-regress/generics/cannotDoRep1.stderr b/testsuite/tests/ghc-regress/generics/CannotDoRep1.stderr index 9292dfeee7..b805da153d 100644 --- a/testsuite/tests/ghc-regress/generics/cannotDoRep1.stderr +++ b/testsuite/tests/ghc-regress/generics/CannotDoRep1.stderr @@ -1,5 +1,5 @@ -cannotDoRep1.hs:8:49: +CannotDoRep1.hs:8:49: Can't make a derived instance of `Representable0 (Context a)': Cannot derive Representable for type Context In the data type declaration for `Context' diff --git a/testsuite/tests/ghc-regress/generics/cannotDoRep2.hs b/testsuite/tests/ghc-regress/generics/CannotDoRep2.hs index 05161ab302..3ff54efb18 100644 --- a/testsuite/tests/ghc-regress/generics/cannotDoRep2.hs +++ b/testsuite/tests/ghc-regress/generics/CannotDoRep2.hs @@ -2,7 +2,7 @@ {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE GADTs #-} -module ShouldFail2 where +module CannotDoRep2 where import GHC.Generics diff --git a/testsuite/tests/ghc-regress/generics/cannotDoRep2.stderr b/testsuite/tests/ghc-regress/generics/CannotDoRep2.stderr index 16ecfc714b..3b7f14e9f2 100644 --- a/testsuite/tests/ghc-regress/generics/cannotDoRep2.stderr +++ b/testsuite/tests/ghc-regress/generics/CannotDoRep2.stderr @@ -1,5 +1,5 @@ -cannotDoRep2.hs:13:1: +CannotDoRep2.hs:13:1: Can't make a derived instance of `Representable0 (Term a)': Cannot derive Representable for type Term In the stand-alone deriving instance for `Representable0 (Term a)' diff --git a/testsuite/tests/ghc-regress/generics/GEq/GEq.hs b/testsuite/tests/ghc-regress/generics/GEq/GEq.hs index a878617e26..67dffafd6a 100644 --- a/testsuite/tests/ghc-regress/generics/GEq/GEq.hs +++ b/testsuite/tests/ghc-regress/generics/GEq/GEq.hs @@ -10,10 +10,7 @@ class GEq' f where instance GEq' U1 where geq' _ _ = True -instance GEq' (K1 P c) where - geq' (K1 a) (K1 b) = undefined - -instance (GEq c) => GEq' (K1 R c) where +instance (GEq c) => GEq' (K1 i c) where geq' (K1 a) (K1 b) = geq a b -- No instances for P or Rec because geq is only applicable to types of kind * diff --git a/testsuite/tests/ghc-regress/generics/GEq/GEq1.stdout b/testsuite/tests/ghc-regress/generics/GEq/GEq1.stdout index db029dea2a..a7f0546170 100644 --- a/testsuite/tests/ghc-regress/generics/GEq/GEq1.stdout +++ b/testsuite/tests/ghc-regress/generics/GEq/GEq1.stdout @@ -1,3 +1,4 @@ False False True +True diff --git a/testsuite/tests/ghc-regress/generics/GEq/Main.hs b/testsuite/tests/ghc-regress/generics/GEq/Main.hs index 7cb9f95b85..40e3d25a46 100644 --- a/testsuite/tests/ghc-regress/generics/GEq/Main.hs +++ b/testsuite/tests/ghc-regress/generics/GEq/Main.hs @@ -8,8 +8,13 @@ import GEq -- We should be able to generate a generic representation for these types data C = C0 | C1 + deriving Representable0 data D a = D0 | D1 { d11 :: a, d12 :: (D a) } + deriving Representable0 + +data (:**:) a b = a :**: b + deriving Representable0 -- Example values c0 = C0 @@ -19,13 +24,18 @@ d0 :: D Char d0 = D0 d1 = D1 'p' D0 +p1 :: Int :**: Char +p1 = 3 :**: 'p' + -- Generic instances -instance GEq C -instance (GEq a) => GEq (D a) +instance GEq C +instance (GEq a) => GEq (D a) +instance (GEq a, GEq b) => GEq (a :**: b) -- Tests teq0 = geq c0 c1 teq1 = geq d0 d1 teq2 = geq d0 d0 +teq3 = geq p1 p1 -main = mapM_ print [teq0, teq1, teq2] +main = mapM_ print [teq0, teq1, teq2, teq3] diff --git a/testsuite/tests/ghc-regress/generics/ShouldFail0.hs b/testsuite/tests/ghc-regress/generics/ShouldFail0.hs new file mode 100644 index 0000000000..eda7442b5e --- /dev/null +++ b/testsuite/tests/ghc-regress/generics/ShouldFail0.hs @@ -0,0 +1,11 @@ +{-# LANGUAGE StandaloneDeriving #-} + +module ShouldFail0 where + +import GHC.Generics (Representable0) + +data X = X + +deriving instance Representable0 X + +-- Should fail (no XDeriveRepresentable) diff --git a/testsuite/tests/ghc-regress/generics/ShouldFail0.stderr b/testsuite/tests/ghc-regress/generics/ShouldFail0.stderr new file mode 100644 index 0000000000..fa8cf463d3 --- /dev/null +++ b/testsuite/tests/ghc-regress/generics/ShouldFail0.stderr @@ -0,0 +1,7 @@ + +ShouldFail0.hs:9:1: + Can't make a derived instance of `Representable0 X': + You need -XDeriveRepresentable to derive an instance for this class + or + You need -XGenerics to derive an instance for this class + In the stand-alone deriving instance for `Representable0 X' diff --git a/testsuite/tests/ghc-regress/generics/Uniplate/Main.hs b/testsuite/tests/ghc-regress/generics/Uniplate/Main.hs index 90461d8145..00fd29b846 100644 --- a/testsuite/tests/ghc-regress/generics/Uniplate/Main.hs +++ b/testsuite/tests/ghc-regress/generics/Uniplate/Main.hs @@ -6,8 +6,8 @@ import GHC.Generics import Uniplate -data Tree = Leaf | Node Int Tree Tree deriving Show -data Pair a b = Pair a b deriving Show +data Tree = Leaf | Node Int Tree Tree deriving (Show, Representable0) +data Pair a b = Pair a b deriving (Show, Representable0) instance Uniplate Tree instance Uniplate (Pair a b) diff --git a/testsuite/tests/ghc-regress/generics/all.T b/testsuite/tests/ghc-regress/generics/all.T index 9c91903f1f..7212a72aa1 100644 --- a/testsuite/tests/ghc-regress/generics/all.T +++ b/testsuite/tests/ghc-regress/generics/all.T @@ -1,7 +1,8 @@ setTestOpts(only_compiler_types(['ghc'])) -test('canDoRep0', normal, compile, ['']) +test('CanDoRep0', normal, compile, ['']) -test('cannotDoRep0', normal, compile_fail, ['']) -test('cannotDoRep1', normal, compile_fail, ['']) -test('cannotDoRep2', normal, compile_fail, ['']) +test('ShouldFail0', normal, compile_fail, ['']) +test('CannotDoRep0', normal, compile_fail, ['']) +test('CannotDoRep1', normal, compile_fail, ['']) +test('CannotDoRep2', normal, compile_fail, ['']) diff --git a/testsuite/tests/ghc-regress/generics/canDoRep0.hs b/testsuite/tests/ghc-regress/generics/canDoRep0.hs deleted file mode 100644 index e94e5477ca..0000000000 --- a/testsuite/tests/ghc-regress/generics/canDoRep0.hs +++ /dev/null @@ -1,18 +0,0 @@ -{-# LANGUAGE Generics #-} - -module ShouldCompile0 where - --- We should be able to generate a generic representation for these types -data A - -data B a - -data C = C0 | C1 - -data D a = D0 | D1 { d11 :: a, d12 :: (D a) } - -data E a = E0 a (E a) (D a) - --- We do not support datatype contexts, but this should still compile --- (Context will simply have no Representable0 instance) -data (Show a) => Context a = Context a |