Add regression test for #15918
authorRyan Scott <ryan.gl.scott@gmail.com>
Tue, 5 Mar 2019 10:58:29 +0000 (05:58 -0500)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Wed, 6 Mar 2019 03:40:54 +0000 (22:40 -0500)
The test case in #15918 no longer triggers an `ASSERT` failure on
GHC HEAD, likely due to commit
682783828275cca5fd8bf5be5b52054c75e0e22c (`Make a smart mkAppTyM`).
This patch adds a regression test for #15918 to finally put it to
rest.

testsuite/tests/quantified-constraints/T15918.hs [new file with mode: 0644]
testsuite/tests/quantified-constraints/T15918.stderr [new file with mode: 0644]
testsuite/tests/quantified-constraints/all.T

diff --git a/testsuite/tests/quantified-constraints/T15918.hs b/testsuite/tests/quantified-constraints/T15918.hs
new file mode 100644 (file)
index 0000000..16e1e35
--- /dev/null
@@ -0,0 +1,19 @@
+{-# Language PolyKinds             #-}
+{-# Language TypeFamilies          #-}
+{-# Language ConstraintKinds       #-}
+{-# Language FlexibleContexts      #-}
+{-# Language QuantifiedConstraints #-}
+{-# Language UndecidableInstances  #-}
+module T15918 where
+
+import Data.Kind
+
+class Rev f where
+  rev :: f a
+
+instance (forall xx. cls xx => Rev xx) => Rev (Build cls) where
+  rev = undefined
+
+data Build :: ((k -> Type) -> Constraint) -> (k -> Type)
+
+uu = rev :: Build [] a
diff --git a/testsuite/tests/quantified-constraints/T15918.stderr b/testsuite/tests/quantified-constraints/T15918.stderr
new file mode 100644 (file)
index 0000000..fa06b0e
--- /dev/null
@@ -0,0 +1,7 @@
+
+T15918.hs:19:19: error:
+    • Expected kind ‘(k0 -> *) -> Constraint’,
+        but ‘[]’ has kind ‘* -> *’
+    • In the first argument of ‘Build’, namely ‘[]’
+      In an expression type signature: Build [] a
+      In the expression: rev :: Build [] a
index 1e2eca8..da58582 100644 (file)
@@ -20,3 +20,4 @@ test('T15359', normal, compile, [''])
 test('T15359a', normal, compile, [''])
 test('T15625', normal, compile, [''])
 test('T15625a', normal, compile, [''])
+test('T15918', normal, compile_fail, [''])