summary refs log tree commit diff stats
path: root/tests/run/tgenericprocvar.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/tgenericprocvar.nim')
-rw-r--r--tests/run/tgenericprocvar.nim19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/run/tgenericprocvar.nim b/tests/run/tgenericprocvar.nim
index 7fdc58ca4..088909d58 100644
--- a/tests/run/tgenericprocvar.nim
+++ b/tests/run/tgenericprocvar.nim
@@ -1,5 +1,5 @@
 discard """
-  output: "0false"
+  output: "0false12"
 """
 
 # Test multiple generic instantiation of generic proc vars:
@@ -17,3 +17,20 @@ proc threadProcWrapper[TMsg]() =
 threadProcWrapper[int]()
 threadProcWrapper[bool]()
 
+type
+  TFilterProc[T,D] = proc (item: T, env:D): bool
+
+proc filter[T,D](data: seq[T], env:D, pred: TFilterProc[T,D]): seq[T] =
+  result = @[]
+  for e in data:
+    if pred(e, env): result.add(e)
+
+proc predTest(item: int, value: int): Bool =
+  return item <= value
+
+proc test(data: seq[int], value: int): seq[int] =
+  return filter(data, value, predTest)
+
+for x in items(test(@[1,2,3], 2)):
+  stdout.write(x)
+