diff options
author | Dominik Picheta <dominikpicheta@gmail.com> | 2017-04-17 17:59:49 +0200 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@gmail.com> | 2017-04-17 18:01:38 +0200 |
commit | 2108dcf0d5bb76b452abe6d1d13f91b6e944cb94 (patch) | |
tree | 39a48115309789eda36ea95533c9c7741563f721 /lib | |
parent | afb7542d208c3ad2c1bb4384c35c4efcd288a572 (diff) | |
download | Nim-2108dcf0d5bb76b452abe6d1d13f91b6e944cb94.tar.gz |
Fix JSON macro bug with ref objects.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/json.nim | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/pure/json.nim b/lib/pure/json.nim index b3fc47749..1e408a223 100644 --- a/lib/pure/json.nim +++ b/lib/pure/json.nim @@ -1608,7 +1608,11 @@ proc createConstructor(typeSym, jsonNode: NimNode): NimNode = result = processType(typeSym, obj, jsonNode) of nnkSym: let obj = getType(typeSym) - result = processType(typeSym, obj, jsonNode) + if obj.kind == nnkBracketExpr: + # When `Sym "Foo"` turns out to be a `ref object`. + result = createConstructor(obj, jsonNode) + else: + result = processType(typeSym, obj, jsonNode) else: doAssert false, "Unable to create constructor for: " & $typeSym.kind |