summary refs log tree commit diff stats
path: root/tests/array/tarray2.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/array/tarray2.nim')
-rw-r--r--tests/array/tarray2.nim36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/array/tarray2.nim b/tests/array/tarray2.nim
new file mode 100644
index 000000000..b6adabb45
--- /dev/null
+++ b/tests/array/tarray2.nim
@@ -0,0 +1,36 @@
+discard """
+  file: "tarray2.nim"
+  output: "[4, 5, 6]\n\n[16, 25, 36]\n\n[16, 25, 36]"
+"""
+# simple check for one dimensional arrays
+
+type
+  TMyArray = array[0..2, int]
+
+  TObj = object
+    arr: TMyarray
+  
+proc mul(a, b: TMyarray): TMyArray =
+  result = a
+  for i in 0..len(a)-1:
+    result[i] = a[i] * b[i]
+
+var
+  x, y: TMyArray
+  o: TObj
+
+proc varArr1(x: var TMyArray): var TMyArray = x
+proc varArr2(x: var TObj): var TMyArray = x.arr
+
+x = [ 4, 5, 6 ]
+echo repr(varArr1(x))
+
+y = x
+echo repr(mul(x, y))
+
+o.arr = mul(x, y)
+echo repr(varArr2(o))
+
+#OUT [16, 25, 36]
+
+