diff --git a/src/preserves.nim b/src/preserves.nim index b7793c2..d8e61da 100644 --- a/src/preserves.nim +++ b/src/preserves.nim @@ -785,6 +785,10 @@ proc fromPreserve*[T, E](v: var T; pr: Preserve[E]): bool = assert(fromPreserve(foo, parsePreserves(""""""))) assert(foo.x == 1) assert(foo.y == 2) + when T is E: + if not pr.embedded and pr.kind == pkEmbedded: + v = pr.embed + return true when T is Preserve[E]: v = pr result = true