diff options
author | andri lim <jangko128@gmail.com> | 2016-10-27 12:22:12 +0700 |
---|---|---|
committer | andri lim <jangko128@gmail.com> | 2016-10-27 12:22:12 +0700 |
commit | bd560d6a4e237268494ff45fc0a4fdeadf39b696 (patch) | |
tree | fc631fad08fd7de1ec5b25bd52e5d94dae68c691 /lib | |
parent | 38ad7400fa4ecc475b587456770e4d981dc9d037 (diff) | |
download | Nim-bd560d6a4e237268494ff45fc0a4fdeadf39b696.tar.gz |
fixes #4915
Diffstat (limited to 'lib')
-rw-r--r-- | lib/core/macros.nim | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index d584b1ac5..b0ef54397 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -235,7 +235,7 @@ proc getImpl*(s: NimSym): NimNode {.magic: "GetImpl", noSideEffect.} = ## const. discard -proc error*(msg: string) {.magic: "NError", benign.} +proc error*(msg: string, n: NimNode = nil) {.magic: "NError", benign.} ## writes an error message at compile time proc warning*(msg: string) {.magic: "NWarning", benign.} @@ -377,19 +377,19 @@ proc expectKind*(n: NimNode, k: NimNodeKind) {.compileTime.} = ## checks that `n` is of kind `k`. 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 n.kind != k: error("Expected a node of kind " & $k & ", got " & $n.kind) + if n.kind != k: error("Expected a node of kind " & $k & ", got " & $n.kind, n) proc expectMinLen*(n: NimNode, min: int) {.compileTime.} = ## checks that `n` has at least `min` children. If this is not the case, ## compilation aborts with an error message. This is useful for writing ## macros that check its number of arguments. - if n.len < min: error("macro expects a node with " & $min & " children") + if n.len < min: error("macro expects a node with " & $min & " children", n) proc expectLen*(n: NimNode, len: int) {.compileTime.} = ## checks that `n` has exactly `len` children. If this is not the case, ## compilation aborts with an error message. This is useful for writing ## macros that check its number of arguments. - if n.len != len: error("macro expects a node with " & $len & " children") + if n.len != len: error("macro expects a node with " & $len & " children", n) proc newTree*(kind: NimNodeKind, children: varargs[NimNode]): NimNode {.compileTime.} = |