mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
52 lines
916 B
Nim
52 lines
916 B
Nim
discard """
|
|
output: '''foo88
|
|
23 24foo 88
|
|
foo88
|
|
23 24foo 88
|
|
hohoho'''
|
|
"""
|
|
|
|
# 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 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()
|
|
|
|
main(24)
|
|
|
|
# Jester + async triggered this bug:
|
|
proc cbOuter() =
|
|
var response = "hohoho"
|
|
block:
|
|
proc cbIter() =
|
|
block:
|
|
proc fooIter() =
|
|
echo response
|
|
fooIter()
|
|
|
|
cbIter()
|
|
|
|
cbOuter()
|