1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- discard """
- output: '''idx out of bounds: -1
- month out of bounds: 0
- Jan
- Feb
- Mar
- Apr
- May
- Jun
- Jul
- Aug
- Sep
- Oct
- Nov
- Dec
- month out of bounds: 13
- idx out of bounds: 14
- '''
- """
- {.push boundChecks:on.}
- # see issue #6532:
- # js backend 0.17.3: array bounds check for non zero based arrays is buggy
- proc test_arrayboundscheck() =
- var months: array[1..12, string] =
- ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
- var indices = [0,1,2,3,4,5,6,7,8,9,10,11,12,13]
- for i in -1 .. 14:
- try:
- let idx = indices[i]
- try:
- echo months[idx]
- except:
- echo "month out of bounds: ", idx
- except:
- echo "idx out of bounds: ", i
-
- # #13966
- var negativeIndexed: array[-2..2, int] = [0, 1, 2, 3, 4]
- negativeIndexed[-1] = 2
- negativeIndexed[1] = 2
- doAssert negativeIndexed == [0, 2, 2, 2, 4]
- test_arrayboundscheck()
- {.pop.}
|