mirror of
https://github.com/nim-lang/Nim.git
synced 2026-07-22 00:41:28 +00:00
Fix getCustomPragmaVal on var fields
This commit is contained in:
@@ -1415,7 +1415,8 @@ proc customPragmaNode(n: NimNode): NimNode =
|
||||
|
||||
if n.kind in {nnkDotExpr, nnkCheckedFieldExpr}:
|
||||
let name = $(if n.kind == nnkCheckedFieldExpr: n[0][1] else: n[1])
|
||||
var typDef = getImpl(getTypeInst(if n.kind == nnkCheckedFieldExpr or n[0].kind == nnkHiddenDeref: n[0][0] else: n[0]))
|
||||
let typInst = getTypeInst(if n.kind == nnkCheckedFieldExpr or n[0].kind == nnkHiddenDeref: n[0][0] else: n[0])
|
||||
var typDef = getImpl(if typInst.kind == nnkVarTy: typInst[0] else: typInst)
|
||||
while typDef != nil:
|
||||
typDef.expectKind(nnkTypeDef)
|
||||
let typ = typDef[2]
|
||||
|
||||
@@ -61,6 +61,11 @@ block: # A bit more advanced case
|
||||
|
||||
assert hasCustomPragma(type(s.field), defaultValue)
|
||||
|
||||
proc foo(s: var MySerializable) =
|
||||
static: assert(s.a.getCustomPragmaVal(defaultValue) == 5)
|
||||
|
||||
foo(s)
|
||||
|
||||
block: # ref types
|
||||
type
|
||||
Node = object of RootObj
|
||||
|
||||
Reference in New Issue
Block a user