macros.customPragmaNode: walk brackets on brackets (#21040)

This commit is contained in:
Emery Hemingway
2022-12-08 03:57:26 -06:00
committed by GitHub
parent c5eb3fd4f0
commit 696def2bf7

View File

@@ -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()