Update tests for Trac #11039
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 23 Dec 2015 12:09:32 +0000 (12:09 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Wed, 23 Dec 2015 12:10:07 +0000 (12:10 +0000)
testsuite/tests/patsyn/should_fail/T11039.hs
testsuite/tests/patsyn/should_fail/T11039.stderr [new file with mode: 0644]
testsuite/tests/patsyn/should_fail/T11039a.hs [new file with mode: 0644]
testsuite/tests/patsyn/should_fail/all.T

index 69e8d2b..fab5824 100644 (file)
@@ -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 (file)
index 0000000..2c7c663
--- /dev/null
@@ -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 (file)
index 0000000..527a90f
--- /dev/null
@@ -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
index eeb405b..fbe5d58 100644 (file)
@@ -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, [''])