summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorRyan Scott <ryan.gl.scott@gmail.com>2019-01-15 08:08:43 -0500
committerRyan Scott <ryan.gl.scott@gmail.com>2019-01-15 08:08:43 -0500
commit83a22066fbe136e4a984e8c90c1d3fd72b6ec4b9 (patch)
treeabd9df501e567f4b8c11318604828ff692437983 /testsuite
parent69947d58c29cc0b047cc34fb4873e12f47e9674c (diff)
downloadhaskell-83a22066fbe136e4a984e8c90c1d3fd72b6ec4b9.tar.gz
Fix #16114 by adding a validity check to rnClsInstDecl
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/rename/should_fail/T16114.hs4
-rw-r--r--testsuite/tests/rename/should_fail/T16114.stderr6
-rw-r--r--testsuite/tests/rename/should_fail/T5951.stderr17
-rw-r--r--testsuite/tests/rename/should_fail/all.T2
4 files changed, 15 insertions, 14 deletions
diff --git a/testsuite/tests/rename/should_fail/T16114.hs b/testsuite/tests/rename/should_fail/T16114.hs
new file mode 100644
index 0000000000..ce891b5a22
--- /dev/null
+++ b/testsuite/tests/rename/should_fail/T16114.hs
@@ -0,0 +1,4 @@
+module T16114 where
+
+data T a
+instance Eq a => Eq a => Eq (T a) where (==) = undefined
diff --git a/testsuite/tests/rename/should_fail/T16114.stderr b/testsuite/tests/rename/should_fail/T16114.stderr
new file mode 100644
index 0000000000..aec0e3e3e0
--- /dev/null
+++ b/testsuite/tests/rename/should_fail/T16114.stderr
@@ -0,0 +1,6 @@
+
+T16114.hs:4:10: error:
+ Illegal class instance: ‘Eq a => Eq a => Eq (T a)’
+ Class instances must be of the form
+ context => C ty_1 ... ty_n
+ where ‘C’ is a class
diff --git a/testsuite/tests/rename/should_fail/T5951.stderr b/testsuite/tests/rename/should_fail/T5951.stderr
index 8fda353b33..b325493f35 100644
--- a/testsuite/tests/rename/should_fail/T5951.stderr
+++ b/testsuite/tests/rename/should_fail/T5951.stderr
@@ -1,15 +1,6 @@
T5951.hs:8:8: error:
- • Expecting one more argument to ‘A’
- Expected a constraint, but ‘A’ has kind ‘* -> Constraint’
- • In the instance declaration for ‘B => C’
-
-T5951.hs:9:8: error:
- • Expecting one more argument to ‘B’
- Expected a constraint, but ‘B’ has kind ‘* -> Constraint’
- • In the instance declaration for ‘B => C’
-
-T5951.hs:10:8: error:
- • Expecting one more argument to ‘C’
- Expected a constraint, but ‘C’ has kind ‘* -> Constraint’
- • In the instance declaration for ‘B => C’
+ Illegal class instance: ‘A => B => C’
+ Class instances must be of the form
+ context => C ty_1 ... ty_n
+ where ‘C’ is a class
diff --git a/testsuite/tests/rename/should_fail/all.T b/testsuite/tests/rename/should_fail/all.T
index 56934266d2..d5a5ec58e9 100644
--- a/testsuite/tests/rename/should_fail/all.T
+++ b/testsuite/tests/rename/should_fail/all.T
@@ -143,5 +143,5 @@ test('T15611a', normal, compile_fail, [''])
test('T15611b', normal, ghci_script, ['T15611b.script'])
test('T15828', normal, compile_fail, [''])
test('T16002', normal, compile_fail, [''])
-
+test('T16114', normal, compile_fail, [''])
test('ExplicitForAllRules2', normal, compile_fail, [''])