diff options
author | Jasper Jenkins <jasper.vs.jenkins@gmail.com> | 2019-06-18 05:16:33 -0700 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-06-18 14:16:33 +0200 |
commit | 8ee0f14ab6b8decffe8673dac4d761c352d8e31d (patch) | |
tree | 952363477abebe5af2c6a3181ef1bc3f683c0967 /tests/array | |
parent | c99ce5051e7024319c2d600af8b218dfc997bde8 (diff) | |
download | Nim-8ee0f14ab6b8decffe8673dac4d761c352d8e31d.tar.gz |
literal array indices (#11424)
Diffstat (limited to 'tests/array')
-rw-r--r-- | tests/array/tarray.nim | 9 | ||||
-rw-r--r-- | tests/array/tidx_lit_err1.nim | 6 | ||||
-rw-r--r-- | tests/array/tidx_lit_err2.nim | 5 | ||||
-rw-r--r-- | tests/array/tidx_lit_err3.nim | 5 |
4 files changed, 25 insertions, 0 deletions
diff --git a/tests/array/tarray.nim b/tests/array/tarray.nim index b40c8757c..6fa305064 100644 --- a/tests/array/tarray.nim +++ b/tests/array/tarray.nim @@ -548,3 +548,12 @@ block t3899: x.a[i] const c = O(a: [1.0,2.0]) echo c[2] + +block arrayLiterals: + type ABC = enum A, B, C + template Idx[IdxT, ElemT](arr: array[IdxT, ElemT]): untyped = IdxT + doAssert [A: 0, B: 1].Idx is range[A..B] + doAssert [A: 0, 1, 3].Idx is ABC + doAssert [1: 2][1] == 2 + doAssert [-1'i8: 2][-1] == 2 + doAssert [-1'i8: 2, 3, 4, 5].Idx is range[-1'i8..2'i8] diff --git a/tests/array/tidx_lit_err1.nim b/tests/array/tidx_lit_err1.nim new file mode 100644 index 000000000..b1823e5a3 --- /dev/null +++ b/tests/array/tidx_lit_err1.nim @@ -0,0 +1,6 @@ +discard """ + errormsg: "size of array exceeds range of index type 'range 1..2(Color)' by 3 elements" + line: 6 +""" +type Color = enum Red, Green, Blue +let y = [Green: 0, 1, 2, 3, 4] diff --git a/tests/array/tidx_lit_err2.nim b/tests/array/tidx_lit_err2.nim new file mode 100644 index 000000000..75f5f227b --- /dev/null +++ b/tests/array/tidx_lit_err2.nim @@ -0,0 +1,5 @@ +discard """ + errormsg: "expected ordinal value for array index, got '\"string\"'" + line: 5 +""" +let x = ["string": 0, "index": 1] diff --git a/tests/array/tidx_lit_err3.nim b/tests/array/tidx_lit_err3.nim new file mode 100644 index 000000000..95922bc50 --- /dev/null +++ b/tests/array/tidx_lit_err3.nim @@ -0,0 +1,5 @@ +discard """ + errormsg: "size of array exceeds range of index type 'range 2147483646..2147483647(int32)' by 1 elements" + line: 5 +""" +echo [high(int32)-1: 1, 2, 3] |