I don't see a crash here, just a normal error message:
: unhandled exception: assignment to discriminant changes object branch;
compile with -d:nimOldCaseObjects for a transition period [FieldError]
Run
The way case objects are handled has changed. Now they can only be created with
a specific case, they can't be set at runtime. You are trying to set it at run
time.
I can't think of other ways around this rule other then "creating and copying
the object" or "using -d:nimOldCaseObjects"... There probably is but it will be
just as ugly.
Maybe you don't need case objects? Maybe you don't need alloc0 them? Are you
using pointers because of threads?