summaryrefslogtreecommitdiff
path: root/testsuite/tests/rename
diff options
context:
space:
mode:
authorGintautas Miliauskas <gintautas.miliauskas@gmail.com>2014-07-24 14:45:26 +0200
committerJoachim Breitner <mail@joachim-breitner.de>2014-07-24 14:46:32 +0200
commitd2942184c8cc53cb3b50f78a7ecff930c3e5861f (patch)
tree7d9723ec44e1958db696ee0d383eb3f9f7a0b0fa /testsuite/tests/rename
parentfc53ed5da1a2455b0da2f8ef3ec317e1a96ed83d (diff)
downloadhaskell-d2942184c8cc53cb3b50f78a7ecff930c3e5861f.tar.gz
Fixed issue with detection of duplicate record fields
Duplicate record fields would not be detected when given a type with multiple data constructors, and the first data constructor had a record field r1 and any consecutive data constructors had multiple fields named r1. This fixes #9156 and was reviewed in https://phabricator.haskell.org/D87
Diffstat (limited to 'testsuite/tests/rename')
-rw-r--r--testsuite/tests/rename/should_compile/all.T2
-rw-r--r--testsuite/tests/rename/should_compile/rn068.hs5
-rw-r--r--testsuite/tests/rename/should_fail/T9156.hs4
-rw-r--r--testsuite/tests/rename/should_fail/T9156.stderr5
-rw-r--r--testsuite/tests/rename/should_fail/all.T1
5 files changed, 17 insertions, 0 deletions
diff --git a/testsuite/tests/rename/should_compile/all.T b/testsuite/tests/rename/should_compile/all.T
index 4ed92bd328..d104df4910 100644
--- a/testsuite/tests/rename/should_compile/all.T
+++ b/testsuite/tests/rename/should_compile/all.T
@@ -110,6 +110,8 @@ test('rn067',
extra_clean(['Rn067_A.hi', 'Rn067_A.o']),
multimod_compile, ['rn067', '-v0'])
+test('rn068', normal, compile, [''])
+
test('T1972', normal, compile, [''])
test('T2205', normal, compile, [''])
diff --git a/testsuite/tests/rename/should_compile/rn068.hs b/testsuite/tests/rename/should_compile/rn068.hs
new file mode 100644
index 0000000000..83ed851ed8
--- /dev/null
+++ b/testsuite/tests/rename/should_compile/rn068.hs
@@ -0,0 +1,5 @@
+module Foo where
+
+data A = A1 { a, b :: Int }
+ | A2 { a, b :: Int }
+ | A3 { a, b :: Int }
diff --git a/testsuite/tests/rename/should_fail/T9156.hs b/testsuite/tests/rename/should_fail/T9156.hs
new file mode 100644
index 0000000000..f4ffd1a128
--- /dev/null
+++ b/testsuite/tests/rename/should_fail/T9156.hs
@@ -0,0 +1,4 @@
+module T9156 where
+
+data D = D1 { f1 :: Int }
+ | D2 { f1, f1 :: Int }
diff --git a/testsuite/tests/rename/should_fail/T9156.stderr b/testsuite/tests/rename/should_fail/T9156.stderr
new file mode 100644
index 0000000000..361ed379df
--- /dev/null
+++ b/testsuite/tests/rename/should_fail/T9156.stderr
@@ -0,0 +1,5 @@
+
+T9156.hs:4:19:
+ Multiple declarations of ‘f1’
+ Declared at: T9156.hs:3:15
+ T9156.hs:4:19
diff --git a/testsuite/tests/rename/should_fail/all.T b/testsuite/tests/rename/should_fail/all.T
index 0f60ff6175..d1bf2b6576 100644
--- a/testsuite/tests/rename/should_fail/all.T
+++ b/testsuite/tests/rename/should_fail/all.T
@@ -114,4 +114,5 @@ test('T8448', normal, compile_fail, [''])
test('T9006',
extra_clean(['T9006a.hi', 'T9006a.o']),
multimod_compile_fail, ['T9006', '-v0'])
+test('T9156', normal, compile_fail, [''])
test('T9177', normal, compile_fail, [''])