From 6c4cfa0885c8cbcd4fb12b6a2f0bd3d7475aaa1d Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Fri, 11 Feb 2022 15:36:30 -0600 Subject: [PATCH] Fix fromPreserve for distinct types This is an example of why bypassing the type system with "when" is dangerous. --- src/preserves.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/preserves.nim b/src/preserves.nim index 2ced976..db5f20c 100644 --- a/src/preserves.nim +++ b/src/preserves.nim @@ -780,7 +780,7 @@ proc fromPreserve*[T, E](v: var T; pr: Preserve[E]): bool = elif compiles(fromPreserveHook(v, pr)): result = fromPreserveHook(v, pr) elif T is distinct: - result = fromPreserve(result.distinctBase, pr) + result = fromPreserve(v.distinctBase, pr) elif T is enum: if pr.isSymbol: try: