Careful with those variable length tuples
This commit is contained in:
parent
e25e06efba
commit
ba4d567791
|
@ -882,12 +882,13 @@ proc fromPreserve*[T, E](v: var T; pr: Preserve[E]): bool =
|
||||||
var i: int
|
var i: int
|
||||||
for name, field in fieldPairs(v):
|
for name, field in fieldPairs(v):
|
||||||
when v.dot(name).hasCustomPragma(preservesTupleTail):
|
when v.dot(name).hasCustomPragma(preservesTupleTail):
|
||||||
setLen(v.dot(name), pr.len - i)
|
if pr.len >= i:
|
||||||
var j: int
|
setLen(v.dot(name), pr.len - i)
|
||||||
while result and i < pr.len:
|
var j: int
|
||||||
result = result and fieldFromPreserve(name, v.dot(name)[j], pr.sequence[i])
|
while result and i < pr.len:
|
||||||
inc i
|
result = result and fieldFromPreserve(name, v.dot(name)[j], pr.sequence[i])
|
||||||
inc j
|
inc i
|
||||||
|
inc j
|
||||||
else:
|
else:
|
||||||
if result and i < pr.len:
|
if result and i < pr.len:
|
||||||
result = result and fieldFromPreserve(name, field, pr.sequence[i])
|
result = result and fieldFromPreserve(name, field, pr.sequence[i])
|
||||||
|
|
Loading…
Reference in New Issue