fix jsonutils with generic sandwiches, don't use strformat (#24560)

fixes #24559

The strformat macros have the problem that they don't capture symbols,
so don't use them in the generic `fromJson` proc here. Also `fromJson`
refers to `jsonTo` before it is declared which doesn't capture it, so
it's now forward declared.
This commit is contained in:
metagn
2024-12-23 08:08:46 +03:00
committed by GitHub
parent 6bc52737b3
commit 5c71fbab30
3 changed files with 28 additions and 5 deletions

View File

@@ -0,0 +1,11 @@
import std/[json, jsonutils]
type
Kind* = enum kind1
Foo* = ref object
bleh: string
case kind*: Kind # Remove these lines and everything works 🤡
of kind1: discard # Remove these lines and everything works 🤡
proc unserialize*[T](s: string) =
discard jsonTo(parseJson(s), T)

View File

@@ -0,0 +1,10 @@
discard """
action: compile
"""
# issue #24559
import mjsonutilssandwich
# import std/[json, jsonutils] # Add this line and everything works 🤡
unserialize[Foo]("{}")