summaryrefslogtreecommitdiff
path: root/testsuite/tests/gadt
diff options
context:
space:
mode:
authorJose Pedro Magalhaes <jpm@cs.uu.nl>2011-11-11 09:07:50 +0000
committerJose Pedro Magalhaes <jpm@cs.uu.nl>2011-11-11 09:07:50 +0000
commit5e1333af4a5f3883cbb4e5b24372d29afa02c6ca (patch)
treefa4410a622fbaa645a0196753ec2c33d9516f39f /testsuite/tests/gadt
parentccf86298e3d8daec41c3a780555e17e816b58c1f (diff)
downloadhaskell-5e1333af4a5f3883cbb4e5b24372d29afa02c6ca.tar.gz
New kind-polymorphic core
This big patch implements a kind-polymorphic core for GHC. The current implementation focuses on making sure that all kind-monomorphic programs still work in the new core; it is not yet guaranteed that kind-polymorphic programs (using the new -XPolyKinds flag) will work. For more information, see http://haskell.org/haskellwiki/GHC/Kinds
Diffstat (limited to 'testsuite/tests/gadt')
-rw-r--r--testsuite/tests/gadt/gadt10.stderr2
-rw-r--r--testsuite/tests/gadt/rw.stderr17
2 files changed, 10 insertions, 9 deletions
diff --git a/testsuite/tests/gadt/gadt10.stderr b/testsuite/tests/gadt/gadt10.stderr
index 100c84bab7..7858f51e8b 100644
--- a/testsuite/tests/gadt/gadt10.stderr
+++ b/testsuite/tests/gadt/gadt10.stderr
@@ -1,7 +1,7 @@
gadt10.hs:6:24:
`RInt' is not applied to enough type arguments
- Expected kind `?', but `RInt' has kind `k0 -> *'
+ Expected kind `??', but `RInt' has kind `k0 -> *'
In the type `RInt'
In the definition of data constructor `R'
In the data type declaration for `RInt'
diff --git a/testsuite/tests/gadt/rw.stderr b/testsuite/tests/gadt/rw.stderr
index dbac243ab6..612c809fb8 100644
--- a/testsuite/tests/gadt/rw.stderr
+++ b/testsuite/tests/gadt/rw.stderr
@@ -1,19 +1,20 @@
-rw.hs:14:47:
+rw.hs:14:42:
Couldn't match type `a' with `Int'
`a' is a rigid type variable bound by
the type signature for writeInt :: T a -> IORef a -> IO ()
at rw.hs:13:1
- In the second argument of `writeIORef', namely `(1 :: Int)'
+ Expected type: IORef Int
+ Actual type: IORef a
+ In the first argument of `writeIORef', namely `ref'
In the expression: writeIORef ref (1 :: Int)
- In a case alternative: ~(Li x) -> writeIORef ref (1 :: Int)
-rw.hs:19:51:
+rw.hs:19:34:
Couldn't match type `a' with `Bool'
`a' is a rigid type variable bound by
the type signature for readBool :: T a -> IORef a -> IO ()
at rw.hs:17:1
- Expected type: a -> Bool
- Actual type: Bool -> Bool
- In the second argument of `(.)', namely `not'
- In the second argument of `(>>=)', namely `(print . not)'
+ Expected type: IORef Bool
+ Actual type: IORef a
+ In the first argument of `readIORef', namely `ref'
+ In the first argument of `(>>=)', namely `readIORef ref'