summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress
diff options
context:
space:
mode:
authorJose Pedro Magalhaes <jpm@cs.uu.nl>2011-05-04 11:16:36 +0200
committerJose Pedro Magalhaes <jpm@cs.uu.nl>2011-05-04 11:16:36 +0200
commit26ea1e825cd07e3b179aa4a0b1ba615b4787404b (patch)
tree84c6b3d64f3802f7cd2857e508682d98368fc743 /testsuite/tests/ghc-regress
parent92af81751072c7a18abf87173aa844432cbaa59f (diff)
downloadhaskell-26ea1e825cd07e3b179aa4a0b1ba615b4787404b.tar.gz
Adapt the testsuite to the recent ghc-generics changes.
Diffstat (limited to 'testsuite/tests/ghc-regress')
-rw-r--r--testsuite/tests/ghc-regress/generics/CanDoRep0.hs23
-rw-r--r--testsuite/tests/ghc-regress/generics/CannotDoRep0.hs (renamed from testsuite/tests/ghc-regress/generics/cannotDoRep0.hs)2
-rw-r--r--testsuite/tests/ghc-regress/generics/CannotDoRep0.stderr (renamed from testsuite/tests/ghc-regress/generics/cannotDoRep0.stderr)2
-rw-r--r--testsuite/tests/ghc-regress/generics/CannotDoRep1.hs (renamed from testsuite/tests/ghc-regress/generics/cannotDoRep1.hs)2
-rw-r--r--testsuite/tests/ghc-regress/generics/CannotDoRep1.stderr (renamed from testsuite/tests/ghc-regress/generics/cannotDoRep1.stderr)2
-rw-r--r--testsuite/tests/ghc-regress/generics/CannotDoRep2.hs (renamed from testsuite/tests/ghc-regress/generics/cannotDoRep2.hs)2
-rw-r--r--testsuite/tests/ghc-regress/generics/CannotDoRep2.stderr (renamed from testsuite/tests/ghc-regress/generics/cannotDoRep2.stderr)2
-rw-r--r--testsuite/tests/ghc-regress/generics/GEq/GEq.hs5
-rw-r--r--testsuite/tests/ghc-regress/generics/GEq/GEq1.stdout1
-rw-r--r--testsuite/tests/ghc-regress/generics/GEq/Main.hs16
-rw-r--r--testsuite/tests/ghc-regress/generics/ShouldFail0.hs11
-rw-r--r--testsuite/tests/ghc-regress/generics/ShouldFail0.stderr7
-rw-r--r--testsuite/tests/ghc-regress/generics/Uniplate/Main.hs4
-rw-r--r--testsuite/tests/ghc-regress/generics/all.T9
-rw-r--r--testsuite/tests/ghc-regress/generics/canDoRep0.hs18
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