Test Trac #8616
authorSimon Peyton Jones <simonpj@microsoft.com>
Mon, 13 Jan 2014 12:23:31 +0000 (12:23 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Mon, 13 Jan 2014 12:23:31 +0000 (12:23 +0000)
testsuite/tests/polykinds/T8616.hs [new file with mode: 0644]
testsuite/tests/polykinds/T8616.stderr [new file with mode: 0644]
testsuite/tests/polykinds/all.T

diff --git a/testsuite/tests/polykinds/T8616.hs b/testsuite/tests/polykinds/T8616.hs
new file mode 100644 (file)
index 0000000..47e31bc
--- /dev/null
@@ -0,0 +1,14 @@
+{-# LANGUAGE PolyKinds, RankNTypes, ScopedTypeVariables #-}
+module T8616 where
+
+import Data.Proxy
+import GHC.Exts
+
+withSomeSing :: forall (kproxy :: k). Proxy kproxy
+withSomeSing = undefined :: (Any :: k)
+  -- The 'k' is bought into scope by the type signature
+  -- This is a type error, but should not crash GHC
+
+foo = (undefined :: Proxy (a :: k)) :: forall (a :: k). Proxy a
+  -- Again, the 'k' is bought into scope by the type signature
+  -- No type error though
\ No newline at end of file
diff --git a/testsuite/tests/polykinds/T8616.stderr b/testsuite/tests/polykinds/T8616.stderr
new file mode 100644 (file)
index 0000000..4e1b9ec
--- /dev/null
@@ -0,0 +1,7 @@
+
+T8616.hs:8:29:
+    Expected a type, but ‛Any’ has kind ‛k’
+    In an expression type signature: (Any :: k)
+    In the expression: undefined :: (Any :: k)
+    In an equation for ‛withSomeSing’:
+        withSomeSing = undefined :: (Any :: k)
index 2d53e04..6d942d3 100644 (file)
@@ -95,3 +95,4 @@ test('T8391', normal, compile, [''])
 test('T8449', normal, run_command, ['$MAKE -s --no-print-directory T8449'])
 test('T8534', normal, compile, [''])
 test('T8566', normal, compile_fail,[''])
+test('T8616', normal, compile_fail,[''])