summaryrefslogtreecommitdiff
path: root/testsuite/tests/array/should_run/arr002.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/array/should_run/arr002.hs')
-rw-r--r--testsuite/tests/array/should_run/arr002.hs23
1 files changed, 23 insertions, 0 deletions
diff --git a/testsuite/tests/array/should_run/arr002.hs b/testsuite/tests/array/should_run/arr002.hs
new file mode 100644
index 0000000000..a26a60281c
--- /dev/null
+++ b/testsuite/tests/array/should_run/arr002.hs
@@ -0,0 +1,23 @@
+-- !!! Array creation, (index,value) list with duplicates.
+--
+-- Haskell library report 1.3 (and earlier) specifies
+-- that `array' values created with lists containing dups,
+-- are undefined ( _|_ ).
+--
+-- GHC-2.02 (and earlier) does not flag this as such, the
+-- last (index,value) is instead used.
+--
+-- The report also specifies `array' is spine strict in
+-- the (index,value) list argument and to check the
+-- validity of the index values upon creation, it also
+-- strict for the indices. To test this, we do (a!1)
+-- twice, expecting to see the same value..
+--
+import Data.Array
+
+main =
+ let a1 = array (1,3) (zip (1:[1..3]) ['a'..'d']) in
+ print (a1!1) >>
+ print a1 >>
+ print (a1!1)
+