parent
0ae2d1ea88
commit
2aa97a228a
8 changed files with 2 additions and 79 deletions
|
|
@ -1,51 +0,0 @@
|
|||
discard """
|
||||
joinable: false
|
||||
output:'''
|
||||
onInject: 1
|
||||
onInject: 2
|
||||
ok0
|
||||
ok1
|
||||
onInject: 3
|
||||
onInject: 4
|
||||
onInject: 5
|
||||
0
|
||||
onInject: 6
|
||||
onInject: 7
|
||||
onInject: 8
|
||||
1
|
||||
onInject: 9
|
||||
onInject: 10
|
||||
onInject: 11
|
||||
2
|
||||
ok2
|
||||
onInject: 12
|
||||
'''
|
||||
"""
|
||||
|
||||
# test {.injectStmt.}
|
||||
|
||||
#[
|
||||
{.injectStmt.} pragma can be used to inject a statement before every
|
||||
other statement in the current module. It's now undocumented and may be removed
|
||||
in the future and replaced with something more general and without its limitations.
|
||||
(e.g. doesn't work in VM or js backends).
|
||||
]#
|
||||
|
||||
from system/ansi_c import c_printf
|
||||
|
||||
var count = 0
|
||||
proc onInject*() =
|
||||
count.inc
|
||||
# echo count # xxx would fail, probably infinite recursion
|
||||
c_printf("onInject: %d\n", cast[int](count))
|
||||
|
||||
{.injectStmt: onInject().}
|
||||
echo "ok0"
|
||||
proc main()=
|
||||
echo "ok1"
|
||||
for a in 0..<3:
|
||||
echo a
|
||||
echo "ok2"
|
||||
|
||||
static: main() # xxx injectStmt not honored in VM
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue