summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/pure/collections/sequtils.nim6
-rwxr-xr-xtests/run/ttoseq.nim11
2 files changed, 11 insertions, 6 deletions
diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim
index 82679bb7f..0fda5700e 100644
--- a/lib/pure/collections/sequtils.nim
+++ b/lib/pure/collections/sequtils.nim
@@ -63,3 +63,9 @@ template filterIt*(seq1, pred: expr): expr {.immediate, dirty.} =
       if pred: result.add(it)
     result
 
+template toSeq*(iter: expr): expr {.immediate.} =
+  ## Transforms any iterator into a sequence.
+  var result {.gensym.}: seq[type(iter)] = @[]
+  for x in iter: add(result, x)
+  result
+
diff --git a/tests/run/ttoseq.nim b/tests/run/ttoseq.nim
index ec49489d0..34cc4824b 100755
--- a/tests/run/ttoseq.nim
+++ b/tests/run/ttoseq.nim
@@ -1,12 +1,11 @@
 discard """
-  output: "23456"  
+  output: "2345623456"
 """
 
-template toSeq*(iter: expr): expr {.immediate.} =
-  var result: seq[type(iter)] = @[]
-  for x in iter: add(result, x)
-  result
-  
+import sequtils
+
+for x in toSeq(countup(2, 6)): 
+  stdout.write(x)
 for x in items(toSeq(countup(2, 6))): 
   stdout.write(x)