diff options
author | Arne Döring <arne.doering@gmx.net> | 2020-03-11 08:27:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-11 08:27:31 +0100 |
commit | f95eef99a97dc813cf2f819a6bbaa3b3ead67267 (patch) | |
tree | 6ae6783b2c82374025f34c1ccba680fad5b931a6 /lib/core | |
parent | 8e3a349561fb0af7f5bc77a4d436abb3ced75d9e (diff) | |
download | Nim-f95eef99a97dc813cf2f819a6bbaa3b3ead67267.tar.gz |
add expectIdent to macros (#12778)
* add expectIdent to macros * apply feedback * Update lib/core/macros.nim Co-Authored-By: Clyybber <darkmine956@gmail.com> * Update texpectIdent2.nim * Update texpectIdent1.nim Co-authored-by: Clyybber <darkmine956@gmail.com> Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Diffstat (limited to 'lib/core')
-rw-r--r-- | lib/core/macros.nim | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index cc20f1dac..57ce89c02 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -1433,6 +1433,13 @@ else: else: result = false +proc expectIdent*(n: NimNode, name: string) {.compileTime, since: (1,1).} = + ## Check that ``eqIdent(n,name)`` holds true. If this is not the + ## case, compilation aborts with an error message. This is useful + ## for writing macros that check the AST that is passed to them. + if not eqIdent(n, name): + error("Expected identifier to be `" & name & "` here", n) + proc hasArgOfName*(params: NimNode; name: string): bool {.compileTime.}= ## Search ``nnkFormalParams`` for an argument. expectKind(params, nnkFormalParams) |