summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@gmail.com>2017-04-17 17:59:49 +0200
committerDominik Picheta <dominikpicheta@gmail.com>2017-04-17 18:01:38 +0200
commit2108dcf0d5bb76b452abe6d1d13f91b6e944cb94 (patch)
tree39a48115309789eda36ea95533c9c7741563f721 /lib
parentafb7542d208c3ad2c1bb4384c35c4efcd288a572 (diff)
downloadNim-2108dcf0d5bb76b452abe6d1d13f91b6e944cb94.tar.gz
Fix JSON macro bug with ref objects.
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/json.nim6
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