mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 03:32:32 +00:00
macros.customPragmaNode: walk brackets on brackets (#21040)
(cherry picked from commit 696def2bf7)
This commit is contained in:
committed by
narimiran
parent
71c5bdf6b3
commit
4234bbe7bd
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user