diff options
author | Andrii Riabushenko <cdome@bk.ru> | 2018-12-11 23:53:59 +0000 |
---|---|---|
committer | Andrii Riabushenko <cdome@bk.ru> | 2018-12-11 23:53:59 +0000 |
commit | 1d16676dd6a31de03bfc87a5dfdee482b27b51b5 (patch) | |
tree | 32a4e2e1514284a654cbcd415caa2a2d84323e82 /tests/pragmas | |
parent | 9becb41e0408d6627dcc7acd735ec71147fc929e (diff) | |
download | Nim-1d16676dd6a31de03bfc87a5dfdee482b27b51b5.tar.gz |
add test
Diffstat (limited to 'tests/pragmas')
-rw-r--r-- | tests/pragmas/tcustom_pragma.nim | 22 |
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 |