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>
This commit is contained in:
Arne Döring 2020-03-11 08:27:31 +01:00 • committed by GitHub
commit f95eef99a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 50 additions and 1 deletions

View file

@ -0,0 +1,18 @@
discard """
errormsg: "Expected identifier to be `foo` here"
line: 18
"""
import macros
macro testUntyped(arg: untyped): void =
arg.expectKind nnkStmtList
arg.expectLen 2
arg[0].expectKind nnkCall
arg[0][0].expectIdent "foo" # must pass
arg[1].expectKind nnkCall
arg[1][0].expectIdent "foo" # must fail
testUntyped:
foo(123)
bar(321)

View file

@ -0,0 +1,24 @@
discard """
errormsg: "Expected identifier to be `foo` here"
line: 24
"""
import macros
macro testTyped(arg: typed): void =
arg.expectKind nnkStmtList
arg.expectLen 2
arg[0].expectKind nnkCall
arg[0][0].expectIdent "foo" # must pass
arg[1].expectKind nnkCall
arg[1][0].expectIdent "foo" # must fail
proc foo(arg: int) =
discard
proc bar(arg: int) =
discard
testTyped:
foo(123)
bar(321)