Fixes #6604. Rejects unnamed tuples with error.

This commit is contained in:
Dominik Picheta
2017-11-29 15:56:46 +00:00
committed by Dominik Picheta
parent e0681715dc
commit d3c9b58c00
3 changed files with 52 additions and 3 deletions

View File

@@ -275,4 +275,24 @@ when isMainModule:
let parsed = to(j, Thing)
doAssert parsed.animal.fur
doAssert parsed.animal.legs == 6
doAssert parsed.color == Red
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

View File

@@ -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))