Do not emit (Preserve | Preserve) types

This commit is contained in:
Emery Hemingway 2021-09-06 15:36:35 +02:00
parent d9cf6dbab4
commit c9c7744531
1 changed files with 10 additions and 5 deletions

View File

@ -345,13 +345,18 @@ proc generateProcs(result: var seq[PNode]; name: string; sn: SchemaNode) =
sn.nodes[0].toNimLit)
for i, field in sn.nodes:
if i > 0:
let id = field.ident
let
id = field.ident
var fieldType = field.typeIdent
if fieldType.kind != nkIdent or fieldType.ident.s != "Preserve":
fieldType =
nn(nkInfix,
ident"|",
fieldType,
ident"Preserve")
params.add nn(nkIdentDefs,
id,
nn(nkInfix,
ident"|",
ident"Preserve",
field.typeIdent),
fieldType,
newEmpty())
initRecordCall.add(
nn(nkCall, ident"toPreserve", id, ident"EmbeddedType"))