From 4234bbe7bd3b0605e148ab40ba8236fcda5fef1b Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 8 Dec 2022 03:57:26 -0600 Subject: [PATCH] macros.customPragmaNode: walk brackets on brackets (#21040) (cherry picked from commit 696def2bf7000902789f27ff89b37ee2841dd3fd) --- lib/core/macros.nim | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/core/macros.nim b/lib/core/macros.nim index 29a6561d93..cf94a5e012 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -1571,11 +1571,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()