summary refs log tree commit diff stats
path: root/tests/stdlib
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@gmail.com>2017-11-29 15:56:46 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2017-11-30 21:34:30 +0000
commitd3c9b58c005e7cd537cbdf3dfd3f69e72fa40722 (patch)
tree3595a91ef8fc1d2cd0846b71e2063f4fe7d0bbee /tests/stdlib
parente0681715dc9c54135937f54510015f66d384aa29 (diff)
downloadNim-d3c9b58c005e7cd537cbdf3dfd3f69e72fa40722.tar.gz
Fixes #6604. Rejects unnamed tuples with error.
Diffstat (limited to 'tests/stdlib')
-rw-r--r--tests/stdlib/tjsonmacro.nim22
-rw-r--r--tests/stdlib/tjsonmacro_reject.nim18
2 files changed, 39 insertions, 1 deletions
diff --git a/tests/stdlib/tjsonmacro.nim b/tests/stdlib/tjsonmacro.nim
index 388d4d534..af9633e9e 100644
--- a/tests/stdlib/tjsonmacro.nim
+++ b/tests/stdlib/tjsonmacro.nim
@@ -275,4 +275,24 @@ when isMainModule:
     let parsed = to(j, Thing)
     doAssert parsed.animal.fur
     doAssert parsed.animal.legs == 6
-    doAssert parsed.color == Red
\ No newline at end of file
+    doAssert parsed.color == Red
+
+  block:
+    type
+      Car = object
+        engine: tuple[name: string, capacity: float]
+        model: string
+
+    let j = """
+      {"engine": {"name": "V8", "capacity": 5.5}, "model": "Skyline"}
+    """
+
+    var i = 0
+    proc mulTest: JsonNode =
+      i.inc()
+      return parseJson(j)
+
+    let parsed = mulTest().to(Car)
+    doAssert parsed.engine.name == "V8"
+
+    doAssert i == 1
\ No newline at end of file
diff --git a/tests/stdlib/tjsonmacro_reject.nim b/tests/stdlib/tjsonmacro_reject.nim
new file mode 100644
index 000000000..00506449f
--- /dev/null
+++ b/tests/stdlib/tjsonmacro_reject.nim
@@ -0,0 +1,18 @@
+discard """
+  file: "tjsonmacro_reject.nim"
+  line: 11
+  errormsg: "Use a named tuple instead of: (string, float)"
+"""
+
+import json
+
+type
+  Car = object
+    engine: (string, float)
+    model: string
+
+let j = """
+  {"engine": {"name": "V8", "capacity": 5.5}, model: "Skyline"}
+"""
+let parsed = parseJson(j)
+echo(to(parsed, Car))
\ No newline at end of file