diff options
author | Gintautas Miliauskas <gintautas.miliauskas@gmail.com> | 2014-07-24 14:45:26 +0200 |
---|---|---|
committer | Joachim Breitner <mail@joachim-breitner.de> | 2014-07-24 14:46:32 +0200 |
commit | d2942184c8cc53cb3b50f78a7ecff930c3e5861f (patch) | |
tree | 7d9723ec44e1958db696ee0d383eb3f9f7a0b0fa /testsuite/tests/rename | |
parent | fc53ed5da1a2455b0da2f8ef3ec317e1a96ed83d (diff) | |
download | haskell-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.T | 2 | ||||
-rw-r--r-- | testsuite/tests/rename/should_compile/rn068.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/rename/should_fail/T9156.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/rename/should_fail/T9156.stderr | 5 | ||||
-rw-r--r-- | testsuite/tests/rename/should_fail/all.T | 1 |
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, ['']) |