fromPreserve: fix conversion of literals in tuples
This commit is contained in:
parent
cbf27a0ee0
commit
a03a188bc2
|
@ -874,7 +874,8 @@ proc fromPreserve*[T, E](v: var T; pr: Preserve[E]): bool =
|
||||||
pr == lit
|
pr == lit
|
||||||
else:
|
else:
|
||||||
fromPreserve(val, pr)
|
fromPreserve(val, pr)
|
||||||
when T.hasCustomPragma(preservesRecord):
|
when T.hasCustomPragma(unpreservable): {.fatal: "unpreservable type " & $T.}
|
||||||
|
elif T.hasCustomPragma(preservesRecord):
|
||||||
if pr.isRecord and pr.label.isSymbol(T.getCustomPragmaVal(preservesRecord)):
|
if pr.isRecord and pr.label.isSymbol(T.getCustomPragmaVal(preservesRecord)):
|
||||||
result = true
|
result = true
|
||||||
var i: int
|
var i: int
|
||||||
|
@ -897,7 +898,7 @@ proc fromPreserve*[T, E](v: var T; pr: Preserve[E]): bool =
|
||||||
inc j
|
inc j
|
||||||
else:
|
else:
|
||||||
if result and i < pr.len:
|
if result and i < pr.len:
|
||||||
result = result and fromPreserve(field, pr.sequence[i])
|
result = result and fieldFromPreserve(name, field, pr.sequence[i])
|
||||||
inc i
|
inc i
|
||||||
result = result and (i == pr.len)
|
result = result and (i == pr.len)
|
||||||
elif T.hasCustomPragma(preservesDictionary):
|
elif T.hasCustomPragma(preservesDictionary):
|
||||||
|
|
Loading…
Reference in New Issue