diff --git a/src/preserves/preserves_schema_nim.nim b/src/preserves/preserves_schema_nim.nim index fa683db..da8dbee 100644 --- a/src/preserves/preserves_schema_nim.nim +++ b/src/preserves/preserves_schema_nim.nim @@ -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(