123456789101112131415161718192021222324252627 |
- discard """
- outputsub: '''inside closure
- hello world'''
- cmd: "nim c --gc:orc -d:useMalloc $file"
- valgrind: true
- """
- # bug #18579
- var fp: proc (env: pointer) {.cdecl.}
- var env: pointer
- proc store(f: proc (){.closure.}) =
- proc closeOver() =
- echo "inside closure"
- f()
- (fp,env) = (cast[proc(env: pointer){.cdecl.}](rawProc closeOver), rawEnv closeOver)
- GC_ref(cast[RootRef](env))
- proc run() =
- fp(env)
- GC_unref(cast[RootRef](env))
- store(proc() = echo "hello world")
- run()
- GC_fullCollect()
|