summary refs log tree commit diff stats
path: root/tests/pragmas
diff options
context:
space:
mode:
authorAndrii Riabushenko <cdome@bk.ru>2018-12-11 23:53:59 +0000
committerAndrii Riabushenko <cdome@bk.ru>2018-12-11 23:53:59 +0000
commit1d16676dd6a31de03bfc87a5dfdee482b27b51b5 (patch)
tree32a4e2e1514284a654cbcd415caa2a2d84323e82 /tests/pragmas
parent9becb41e0408d6627dcc7acd735ec71147fc929e (diff)
downloadNim-1d16676dd6a31de03bfc87a5dfdee482b27b51b5.tar.gz
add test
Diffstat (limited to 'tests/pragmas')
-rw-r--r--tests/pragmas/tcustom_pragma.nim22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/pragmas/tcustom_pragma.nim b/tests/pragmas/tcustom_pragma.nim
index ae0f39631..0bc4d2f18 100644
--- a/tests/pragmas/tcustom_pragma.nim
+++ b/tests/pragmas/tcustom_pragma.nim
@@ -174,3 +174,25 @@ type
 var foo: Something
 foo.cardinal = north
 doAssert foo.b.hasCustomPragma(thingy) == true
+
+
+proc myproc(s: string): int = 
+  {.thingy.}:
+    s.len
+
+doAssert myproc("123") == 3
+
+let xx = compiles:
+  proc myproc_bad(s: string): int = 
+    {.not_exist.}:
+      s.len
+doAssert: xx == false
+
+
+macro checkSym(s: typed{nkSym}): untyped = 
+  let body = s.getImpl.body
+  doAssert body[1].kind == nnkPragmaBlock
+  doAssert body[1][0].kind == nnkPragma
+  doAssert body[1][0][0] == bindSym"thingy"
+
+checkSym(myproc)
\ No newline at end of file