summary refs log tree commit diff stats
path: root/tests
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 /tests
parentafb7542d208c3ad2c1bb4384c35c4efcd288a572 (diff)
downloadNim-2108dcf0d5bb76b452abe6d1d13f91b6e944cb94.tar.gz
Fix JSON macro bug with ref objects.
Diffstat (limited to 'tests')
-rw-r--r--tests/stdlib/tjsonmacro.nim32
1 files changed, 29 insertions, 3 deletions
diff --git a/tests/stdlib/tjsonmacro.nim b/tests/stdlib/tjsonmacro.nim
index 74b0d4dc3..f8ecd4637 100644
--- a/tests/stdlib/tjsonmacro.nim
+++ b/tests/stdlib/tjsonmacro.nim
@@ -159,11 +159,11 @@ when isMainModule:
         name: string
         age: int
 
-      Data = object
+      Data1 = object # TODO: Codegen bug when changed to ``Data``.
         person: Person
         list: seq[int]
 
-    var data = to(jsonNode, Data)
+    var data = to(jsonNode, Data1)
     doAssert data.person.name == "Nimmer"
     doAssert data.person.age == 21
     doAssert data.list == @[1, 2, 3, 4]
@@ -182,4 +182,30 @@ when isMainModule:
     }
 
     var result = to(node, TestEnum)
-    doAssert result.field == Bar
\ No newline at end of file
+    doAssert result.field == Bar
+
+  # Test ref type in field.
+  block:
+    let jsonNode = parseJson("""
+      {
+        "person": {
+          "name": "Nimmer",
+          "age": 21
+        },
+        "list": [1, 2, 3, 4]
+      }
+    """)
+
+    type
+      Person = ref object
+        name: string
+        age: int
+
+      Data = object
+        person: Person
+        list: seq[int]
+
+    var data = to(jsonNode, Data)
+    doAssert data.person.name == "Nimmer"
+    doAssert data.person.age == 21
+    doAssert data.list == @[1, 2, 3, 4]
\ No newline at end of file