summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorArne Döring <arne.doering@gmx.net>2018-10-30 17:15:37 +0100
committerGitHub <noreply@github.com>2018-10-30 17:15:37 +0100
commit9c6620eba1a2dc6a3220b53d58b25b82f18694fc (patch)
treeb468dca238e46928529818428f8e59f3715dad00 /lib
parent7ae6b7e9a29824ca674d4b140573cf56d0a41ebe (diff)
parentfb75e3bb4947413ea44ef2f5486ff16fdbc3308c (diff)
downloadNim-9c6620eba1a2dc6a3220b53d58b25b82f18694fc.tar.gz
Merge pull request #9570 from b3liever/macrosfixname
Fix name set and get procs in macros (fixes #9569)
Diffstat (limited to 'lib')
-rw-r--r--lib/core/macros.nim12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim
index 87daabb5b..a146117d0 100644
--- a/lib/core/macros.nim
+++ b/lib/core/macros.nim
@@ -1087,10 +1087,18 @@ proc name*(someProc: NimNode): NimNode {.compileTime.} =
   someProc.expectRoutine
   result = someProc[0]
   if result.kind == nnkPostfix:
-    result = result[1]
+    if result[1].kind == nnkAccQuoted:
+      result = result[1][0]
+    else:
+      result = result[1]
+  elif result.kind == nnkAccQuoted:
+    result = result[0]
+
 proc `name=`*(someProc: NimNode; val: NimNode) {.compileTime.} =
   someProc.expectRoutine
-  someProc[0] = val
+  if someProc[0].kind == nnkPostfix:
+    someProc[0][1] = val
+  else: someProc[0] = val
 
 proc params*(someProc: NimNode): NimNode {.compileTime.} =
   someProc.expectRoutine