summary refs log tree commit diff stats
path: root/tests/closure/tclosure0.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/closure/tclosure0.nim')
-rw-r--r--tests/closure/tclosure0.nim87
1 files changed, 0 insertions, 87 deletions
diff --git a/tests/closure/tclosure0.nim b/tests/closure/tclosure0.nim
deleted file mode 100644
index 9952268d5..000000000
--- a/tests/closure/tclosure0.nim
+++ /dev/null
@@ -1,87 +0,0 @@
-discard """
-  output: '''foo88
-23 24foo 88
-18
-18
-99
-99
-99
-99 99
-99 99
-12 99 99
-12 99 99'''
-"""
-
-when true:
-  # test simple closure within dummy 'main':
-  proc dummy =
-    proc main2(param: int) =
-      var fooB = 23
-      proc outer(outerParam: string) =
-        var outerVar = 88
-        echo outerParam, outerVar
-        proc inner() =
-          block Test:
-            echo fooB, " ", param, outerParam, " ", outerVar
-        inner()
-      outer("foo")
-    main2(24)
-
-  dummy()
-
-when true:
-  proc outer2(x:int) : proc(y:int):int =   # curry-ed application
-      return proc(y:int):int = x*y
-
-  var fn = outer2(6)  # the closure
-  echo fn(3)   # it works
-
-  var rawP = fn.rawProc()
-  var rawE = fn.rawEnv()
-
-  # A type to cast the function pointer into a nimcall
-  type
-    TimesClosure = proc(a: int, x: pointer): int {.nimcall.}
-
-  # Call the function with its closure
-  echo cast[TimesClosure](rawP)(3, rawE)
-
-when true:
-  proc outer =
-    var x, y: int = 99
-    proc innerA = echo x
-    proc innerB =
-      echo y
-      innerA()
-
-    innerA()
-    innerB()
-
-  outer()
-
-when true:
-  proc indirectDep =
-    var x, y: int = 99
-    proc innerA = echo x, " ", y
-    proc innerB =
-      innerA()
-
-    innerA()
-    innerB()
-
-  indirectDep()
-
-when true:
-  proc needlessIndirection =
-    var x, y: int = 99
-    proc indirection =
-      var z = 12
-      proc innerA = echo z, " ", x, " ", y
-      proc innerB =
-        innerA()
-
-      innerA()
-      innerB()
-    indirection()
-
-  needlessIndirection()