summary refs log tree commit diff stats
path: root/tests/collections/tmapit.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/collections/tmapit.nim')
-rw-r--r--tests/collections/tmapit.nim33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/collections/tmapit.nim b/tests/collections/tmapit.nim
new file mode 100644
index 000000000..b2afa9429
--- /dev/null
+++ b/tests/collections/tmapit.nim
@@ -0,0 +1,33 @@
+discard """
+  output: '''true
+true'''
+"""
+
+import sequtils
+
+var x = @[1, 2, 3]
+# This mapIt call will run with preallocation because ``len`` is available.
+var y = x.mapIt($(it+10))
+echo y == @["11", "12", "13"]
+
+type structureWithoutLen = object
+  a: array[5, int]
+
+iterator items(s: structureWithoutLen): int {.inline.} =
+  yield s.a[0]
+  yield s.a[1]
+  yield s.a[2]
+  yield s.a[3]
+  yield s.a[4]
+
+var st: structureWithoutLen
+st.a[0] = 0
+st.a[1] = 1
+st.a[2] = 2
+st.a[3] = 3
+st.a[4] = 4
+
+# this will run without preallocating the result
+# since ``len`` is not available
+var r = st.mapIt($(it+10))
+echo r == @["10", "11", "12", "13", "14"]