Mark a preserves template as used

This commit is contained in:
Emery Hemingway 2021-10-17 17:22:44 +02:00
parent 30a9d55aac
commit 54c28c90ce
1 changed files with 1 additions and 7 deletions

View File

@ -695,8 +695,7 @@ proc toPreserve*[T](x: T; E = void): Preserve[E] =
elif T is SomeInteger: elif T is SomeInteger:
result = Preserve[E](kind: pkSignedInteger, int: x.BiggestInt) result = Preserve[E](kind: pkSignedInteger, int: x.BiggestInt)
elif T is object: elif T is object:
trace T, " is object" template fieldToPreserve(key: string; val: typed): Preserve {.used.} =
template fieldToPreserve(key: string; val: typed): Preserve =
when x.dot(key).hasCustomPragma(preservesSymbol): when x.dot(key).hasCustomPragma(preservesSymbol):
toSymbol(val, E) toSymbol(val, E)
elif x.dot(key).hasCustomPragma(preservesLiteral): elif x.dot(key).hasCustomPragma(preservesLiteral):
@ -708,7 +707,6 @@ proc toPreserve*[T](x: T; E = void): Preserve[E] =
elif T.hasCustomPragma(preservesOr): elif T.hasCustomPragma(preservesOr):
var hasKind, hasVariant: bool var hasKind, hasVariant: bool
for k, v in x.fieldPairs: for k, v in x.fieldPairs:
trace T, ": iterate to ", k
if k == "orKind": if k == "orKind":
assert(not hasKind) assert(not hasKind)
hasKind = true hasKind = true
@ -716,8 +714,6 @@ proc toPreserve*[T](x: T; E = void): Preserve[E] =
assert(hasKind and not hasVariant) assert(hasKind and not hasVariant)
result = fieldToPreserve(k, v) result = fieldToPreserve(k, v)
hasVariant = true hasVariant = true
if not hasVariant:
trace T, ": no value found"
elif T.hasCustomPragma(preservesRecord): elif T.hasCustomPragma(preservesRecord):
result = Preserve[E](kind: pkRecord) result = Preserve[E](kind: pkRecord)
for k, v in x.fieldPairs: for k, v in x.fieldPairs:
@ -733,7 +729,6 @@ proc toPreserve*[T](x: T; E = void): Preserve[E] =
else: else:
result.sequence.add(fieldToPreserve(label, field)) result.sequence.add(fieldToPreserve(label, field))
elif T.hasCustomPragma(preservesDictionary): elif T.hasCustomPragma(preservesDictionary):
trace T, ": convert to a dictionary"
result = initDictionary[E]() result = initDictionary[E]()
for key, val in x.fieldPairs: for key, val in x.fieldPairs:
result[toSymbol(key, E)] = fieldToPreserve(key, val) result[toSymbol(key, E)] = fieldToPreserve(key, val)
@ -919,7 +914,6 @@ proc fromPreserve*[T, E](v: var T; pr: Preserve[E]): bool =
inc i inc i
result = result and (i == pr.len) result = result and (i == pr.len)
elif T.hasCustomPragma(preservesDictionary): elif T.hasCustomPragma(preservesDictionary):
trace T, " is a preservesDictionary"
if pr.isDictionary: if pr.isDictionary:
result = true result = true
var i: int var i: int