diff options
author | Emery Hemingway <ehmry@posteo.net> | 2022-12-08 03:57:26 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-08 10:57:26 +0100 |
commit | 696def2bf7000902789f27ff89b37ee2841dd3fd (patch) | |
tree | 387b8cbba12178e1a70e570041dd9e4021c82f93 /lib | |
parent | c5eb3fd4f0798eaa31b834f5dbe3f563e55c2b03 (diff) | |
download | Nim-696def2bf7000902789f27ff89b37ee2841dd3fd.tar.gz |
macros.customPragmaNode: walk brackets on brackets (#21040)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/core/macros.nim | 8 |
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() |