Use set[T] rather than HashSet[T] for enum sets
This commit is contained in:
parent
895a8695d2
commit
8c0af37694
|
@ -1,6 +1,6 @@
|
||||||
# Package
|
# Package
|
||||||
|
|
||||||
version = "99999999"
|
version = "20220709"
|
||||||
author = "Emery Hemingway"
|
author = "Emery Hemingway"
|
||||||
description = "data model and serialization format"
|
description = "data model and serialization format"
|
||||||
license = "Unlicense"
|
license = "Unlicense"
|
||||||
|
|
|
@ -266,6 +266,12 @@ proc isSymbolEnum(scm: Schema; def: Definition): bool =
|
||||||
result = isSymbolEnum(scm, def.or)
|
result = isSymbolEnum(scm, def.or)
|
||||||
else: discard
|
else: discard
|
||||||
|
|
||||||
|
proc isSymbolEnum(scm: Schema; sp: SimplePattern): bool =
|
||||||
|
# HashSet
|
||||||
|
if sp.orKind == SimplepatternKind.`Ref` and sp.ref.module.len == 0:
|
||||||
|
result = isSymbolEnum(scm, deref(scm, sp.ref))
|
||||||
|
else: discard
|
||||||
|
|
||||||
proc isAny(scm: Schema; def: Definition): bool =
|
proc isAny(scm: Schema; def: Definition): bool =
|
||||||
if def.orKind == DefinitionKind.Pattern:
|
if def.orKind == DefinitionKind.Pattern:
|
||||||
if def.pattern.orKind == PatternKind.SimplePattern:
|
if def.pattern.orKind == PatternKind.SimplePattern:
|
||||||
|
@ -295,7 +301,11 @@ proc typeIdent(scm: Schema; sp: SimplePattern): TypeSpec =
|
||||||
result.node = nn(nkBracketExpr, ident"seq", result.node)
|
result.node = nn(nkBracketExpr, ident"seq", result.node)
|
||||||
of SimplepatternKind.`setof`:
|
of SimplepatternKind.`setof`:
|
||||||
result = typeIdent(scm, sp.setof.pattern)
|
result = typeIdent(scm, sp.setof.pattern)
|
||||||
result.node = nn(nkBracketExpr, ident"HashSet", result.node)
|
result.node =
|
||||||
|
if isSymbolEnum(scm, sp.setof.pattern):
|
||||||
|
nn(nkBracketExpr, ident"set", result.node)
|
||||||
|
else:
|
||||||
|
nn(nkBracketExpr, ident"HashSet", result.node)
|
||||||
of SimplepatternKind.`dictof`:
|
of SimplepatternKind.`dictof`:
|
||||||
let
|
let
|
||||||
key = typeIdent(scm, sp.dictof.key)
|
key = typeIdent(scm, sp.dictof.key)
|
||||||
|
|
Loading…
Reference in New Issue