summaryrefslogtreecommitdiff
path: root/testsuite/tests/patsyn
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2015-12-23 12:09:32 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2015-12-23 12:10:07 +0000
commitd1e9f827c36f6f552a643c2e537abdf74d87c893 (patch)
tree4bce5514467ef6f58ecde31e61a466eb839cfe17 /testsuite/tests/patsyn
parentcb989e2f71bbd31aa6b3729030034167d8f8a1ca (diff)
downloadhaskell-d1e9f827c36f6f552a643c2e537abdf74d87c893.tar.gz
Update tests for Trac #11039
Diffstat (limited to 'testsuite/tests/patsyn')
-rw-r--r--testsuite/tests/patsyn/should_fail/T11039.hs4
-rw-r--r--testsuite/tests/patsyn/should_fail/T11039.stderr11
-rw-r--r--testsuite/tests/patsyn/should_fail/T11039a.hs8
-rw-r--r--testsuite/tests/patsyn/should_fail/all.T3
4 files changed, 24 insertions, 2 deletions
diff --git a/testsuite/tests/patsyn/should_fail/T11039.hs b/testsuite/tests/patsyn/should_fail/T11039.hs
index 69e8d2bffd..fab58240e5 100644
--- a/testsuite/tests/patsyn/should_fail/T11039.hs
+++ b/testsuite/tests/patsyn/should_fail/T11039.hs
@@ -1,7 +1,9 @@
{-# LANGUAGE PatternSynonyms #-}
-module Foo () where
+module T11039 where
data A a = A a
+-- This should fail
pattern Q :: () => (A ~ f) => a -> f a
pattern Q a = A a
+
diff --git a/testsuite/tests/patsyn/should_fail/T11039.stderr b/testsuite/tests/patsyn/should_fail/T11039.stderr
new file mode 100644
index 0000000000..2c7c66327c
--- /dev/null
+++ b/testsuite/tests/patsyn/should_fail/T11039.stderr
@@ -0,0 +1,11 @@
+
+T11039.hs:8:15: error:
+ • Couldn't match type ‘f’ with ‘A’
+ ‘f’ is a rigid type variable bound by
+ the type signature for pattern synonym ‘Q’:
+ forall (f :: * -> *) a. a -> f a
+ at T11039.hs:7:14
+ Expected type: f a
+ Actual type: A a
+ • In the pattern: A a
+ In the declaration for pattern synonym ‘Q’
diff --git a/testsuite/tests/patsyn/should_fail/T11039a.hs b/testsuite/tests/patsyn/should_fail/T11039a.hs
new file mode 100644
index 0000000000..527a90f20b
--- /dev/null
+++ b/testsuite/tests/patsyn/should_fail/T11039a.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PatternSynonyms #-}
+module T11039a where
+
+data A a = A a
+
+-- This should succeed
+pattern Q2 :: (A ~ f) => a -> f a
+pattern Q2 a = A a
diff --git a/testsuite/tests/patsyn/should_fail/all.T b/testsuite/tests/patsyn/should_fail/all.T
index eeb405b316..fbe5d5897b 100644
--- a/testsuite/tests/patsyn/should_fail/all.T
+++ b/testsuite/tests/patsyn/should_fail/all.T
@@ -16,7 +16,8 @@ test('records-mixing-fields', normal, compile_fail, [''])
test('records-exquant', normal, compile_fail, [''])
test('records-poly-update', normal, compile_fail, [''])
test('mixed-pat-syn-record-sels', normal, compile_fail, [''])
-test('T11039', [expect_broken(11039)], compile_fail, [''])
+test('T11039', normal, compile_fail, [''])
+test('T11039a', normal, compile, [''])
test('export-type', normal, compile_fail, [''])
test('export-syntax', normal, compile_fail, [''])
test('import-syntax', normal, compile_fail, [''])