preserves_schema_nim: attach embed pragmas inside Or objects

This commit is contained in:
Emery Hemingway 2024-01-08 00:06:09 +02:00
parent d2017228fb
commit 8b2407b1a2
1 changed files with 5 additions and 1 deletions

View File

@ -818,8 +818,12 @@ proc nimTypeOf(loc: Location; known: var TypeTable; name: string; orDef: Definit
addAttrs(result, memberType)
memberType.node = parameterize(
loc, memberType.node, isEmbedded(loc, na.pattern))
var memberId = toFieldIdent(loc, na.variantLabel.normalize, na.pattern)
if isEmbedded(loc, na.pattern):
memberId = nkPragmaExpr.newTree(
memberId, nkPragma.newTree(ident"preservesEmbedded"))
branchRecList.add nkIdentDefs.newTree(
toFieldIdent(loc, na.variantLabel.normalize, na.pattern),
memberId,
memberType.node, newEmpty())
recCase.add nkOfBranch.newTree(
nkDotExpr.newTree(