summary refs log tree commit diff stats
path: root/tests/showoff/tonce.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/showoff/tonce.nim')
-rw-r--r--tests/showoff/tonce.nim22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/showoff/tonce.nim b/tests/showoff/tonce.nim
new file mode 100644
index 000000000..6fc372e87
--- /dev/null
+++ b/tests/showoff/tonce.nim
@@ -0,0 +1,22 @@
+discard """
+  output: '''first call of p
+some call of p
+new instantiation
+some call of p'''
+"""
+
+template once(body: stmt) =
+  var x {.global.} = false
+  if not x:
+    x = true
+    body
+
+proc p() =
+  once:
+    echo "first call of p"
+  echo "some call of p"
+
+p()
+once:
+  echo "new instantiation"
+p()