diff options
Diffstat (limited to 'tests/openarray/tptrarrayderef.nim')
-rw-r--r-- | tests/openarray/tptrarrayderef.nim | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/tests/openarray/tptrarrayderef.nim b/tests/openarray/tptrarrayderef.nim index b75bc08c4..1b7ef0df0 100644 --- a/tests/openarray/tptrarrayderef.nim +++ b/tests/openarray/tptrarrayderef.nim @@ -1,6 +1,7 @@ discard """ output: '''[1, 2, 3, 4] 3 +['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C'] OK ''' """ @@ -14,14 +15,14 @@ var raa = [11,12,13] #bug #3586 -proc mutate[T](arr:openarray[T], brr: openArray[T]) = +proc mutate[T](arr:openArray[T], brr: openArray[T]) = for i in 0..arr.len-1: doAssert(arr[i] == brr[i]) mutate(arr, arr) #bug #2240 -proc f(a: openarray[int], b: openArray[int]) = +proc f(a: openArray[int], b: openArray[int]) = for i in 0..a.len-1: doAssert(a[i] == b[i]) @@ -36,7 +37,7 @@ ra[2] = 13 f(ra[], raa) #bug #2240b -proc fillBuffer(buf: var openarray[char]) = +proc fillBuffer(buf: var openArray[char]) = for i in 0..buf.len-1: buf[i] = chr(i) @@ -66,4 +67,18 @@ var doAssert y1 == ([1, 2], 3) doAssert y2 == [1, 2, 3, 4] +template newOpenArray(x: var string, size: int): openArray[char] = + var z = 1 + toOpenArray(x, z, size) + +template doSomethingAndCreate(x: var string): openArray[char] = + let size = 12 + newOpenArray(x, size) + +proc sinkk(x: openArray[char]) = + echo x + +var xArrayDeref = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" +sinkk doSomethingAndCreate(xArrayDeref) + echo "OK" |