Make objects ref objects to support recursion

This commit is contained in:
Emery Hemingway 2021-09-06 17:38:48 +02:00
parent e556fa26e0
commit c942e79a0a
1 changed files with 4 additions and 4 deletions

View File

@ -157,10 +157,10 @@ proc nimTypeOf(scm: Schema; known: var TypeTable; sn: SchemaNode; name = ""): PN
let disc = nkDotExpr.newNode.add(
enumIdent, bn.altLabel.nimIdentNormalize.ident.accQuote)
recCase.add nkOfBranch.newNode.add(disc, recList)
result = nn(nkObjectTy,
result = nn(nkRefTy, nn(nkObjectTy,
newEmpty(),
newEmpty(),
nn(nkRecList, recCase))
nn(nkRecList, recCase)))
of snkAny:
result = ident"Preserve"
of snkAtom:
@ -215,10 +215,10 @@ proc nimTypeOf(scm: Schema; known: var TypeTable; sn: SchemaNode; name = ""): PN
id.accQuote.toExport,
nimTypeOf(scm, known, field, $id),
newEmpty())
result = nn(nkObjectTy,
result = nn(nkRefTy, nn(nkObjectTy,
newEmpty(),
newEmpty(),
recList)
recList))
of snkTuple, snkVariableTuple:
# TODO: the variable part
result = nkTupleTy.newNode