diff options
author | Araq <rumpf_a@web.de> | 2014-07-10 00:59:26 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-07-10 00:59:26 +0200 |
commit | e4e32bdfbf72931c7e0e5692a30c3030490178e1 (patch) | |
tree | ad95abfdea1e69470d05c9b27425f75d56924326 /compiler/sem.nim | |
parent | 44353c585f16da7ca868d5e0e748065c415648e8 (diff) | |
download | Nim-e4e32bdfbf72931c7e0e5692a30c3030490178e1.tar.gz |
better error messages for macro instantiations
Diffstat (limited to 'compiler/sem.nim')
-rw-r--r-- | compiler/sem.nim | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/sem.nim b/compiler/sem.nim index f12b638ac..8025ef70d 100644 --- a/compiler/sem.nim +++ b/compiler/sem.nim @@ -305,6 +305,8 @@ proc semAfterMacroCall(c: PContext, n: PNode, s: PSym, proc semMacroExpr(c: PContext, n, nOrig: PNode, sym: PSym, flags: TExprFlags = {}): PNode = + pushInfoContext(nOrig.info) + markUsed(n.info, sym) if sym == c.p.owner: globalError(n.info, errRecursiveDependencyX, sym.name.s) @@ -315,6 +317,7 @@ proc semMacroExpr(c: PContext, n, nOrig: PNode, sym: PSym, result = evalMacroCall(c.module, n, nOrig, sym) if efNoSemCheck notin flags: result = semAfterMacroCall(c, result, sym, flags) + popInfoContext() proc forceBool(c: PContext, n: PNode): PNode = result = fitNode(c, getSysType(tyBool), n) |