summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorEmery Hemingway <ehmry@posteo.net>2022-12-08 03:57:26 -0600
committerGitHub <noreply@github.com>2022-12-08 10:57:26 +0100
commit696def2bf7000902789f27ff89b37ee2841dd3fd (patch)
tree387b8cbba12178e1a70e570041dd9e4021c82f93 /lib
parentc5eb3fd4f0798eaa31b834f5dbe3f563e55c2b03 (diff)
downloadNim-696def2bf7000902789f27ff89b37ee2841dd3fd.tar.gz
macros.customPragmaNode: walk brackets on brackets (#21040)
Diffstat (limited to 'lib')
-rw-r--r--lib/core/macros.nim8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim
index b26264405..18a70f20c 100644
--- a/lib/core/macros.nim
+++ b/lib/core/macros.nim
@@ -1582,11 +1582,9 @@ proc customPragmaNode(n: NimNode): NimNode =
 
   if n.kind in {nnkDotExpr, nnkCheckedFieldExpr}:
     let name = $(if n.kind == nnkCheckedFieldExpr: n[0][1] else: n[1])
-    let typInst = getTypeInst(if n.kind == nnkCheckedFieldExpr or n[0].kind == nnkHiddenDeref: n[0][0] else: n[0])
-    var typDef = getImpl(
-      if typInst.kind in {nnkVarTy, nnkBracketExpr}: typInst[0]
-      else: typInst
-    )
+    var typInst = getTypeInst(if n.kind == nnkCheckedFieldExpr or n[0].kind == nnkHiddenDeref: n[0][0] else: n[0])
+    while typInst.kind in {nnkVarTy, nnkBracketExpr}: typInst = typInst[0]
+    var typDef = getImpl(typInst)
     while typDef != nil:
       typDef.expectKind(nnkTypeDef)
       let typ = typDef[2].extractTypeImpl()