diff options
Diffstat (limited to 'tests/closure/tnestedclosure.nim')
-rw-r--r-- | tests/closure/tnestedclosure.nim | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/closure/tnestedclosure.nim b/tests/closure/tnestedclosure.nim new file mode 100644 index 000000000..6a76e003e --- /dev/null +++ b/tests/closure/tnestedclosure.nim @@ -0,0 +1,36 @@ +discard """ + output: '''foo88 +23 24foo 88 +foo88 +23 24foo 88''' +""" + +# test nested closure +proc main(param: int) = + var foo = 23 + proc outer(outerParam: string) = + var outerVar = 88 + echo outerParam, outerVar + proc inner() = + block Test: + echo foo, " ", param, outerParam, " ", outerVar + inner() + outer("foo") + +# test simple closure within dummy 'main': +proc dummy = + proc main2(param: int) = + var foo = 23 + proc outer(outerParam: string) = + var outerVar = 88 + echo outerParam, outerVar + proc inner() = + block Test: + echo foo, " ", param, outerParam, " ", outerVar + inner() + outer("foo") + main2(24) + +dummy() + +main(24) |